调试电子邮件连接

I am using XAMPP V 1.7.7; Control Panel 3; Windows 7, Service Pack 1. and Outlook

I am trying to set up an email connection using 'sendmail' - and am now at the point where everything is finally working - except I now get an entry in the Debug log:

12/04/23 21:10:55 ** From address not verified - see http://www.btyahoo.com/verify<EOL>

This is the code and set-up so far:

php.ini:

    [mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = mail.btinternet.com
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someone@btinternet.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log = "C:\xampp\php\logs\php_mail.log"

sendmail.ini

smtp_server=mail.btinternet.com

; smtp port (normally 25)

smtp_port=25

; SMTPS (SSL) support
;   auto = use SSL for port 465, otherwise try to use TLS
;   ssl  = alway use SSL
;   tls  = always use TLS
;   none = never try to use SSL

smtp_ssl=auto

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify

; default_domain=localhost

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

error_logfile=error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

debug_logfile=debug.log

; if your smtp server requires authentication, modify the following two lines

auth_username=someone@btinternet.com
auth_password=******

; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines.  do not enable unless it is required.

;pop3_server=
;pop3_username=
;pop3_password=
; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify
; the "From: " header of the message content

force_sender=someone@btinternt.com

; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify
; the "To: " header of the message content

force_recipient=

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

hostname=

php code:

<?php   
$email_to = "someone@btinternet.com";
$name=$row['name'];
$email=$row['email'];
$phone=$row['mobtel'];
$email_from = 'someone@btinternet.com';
$email_subject = "Feedback from website";

$message=("Name:  ").$name. ("
") . ("Email:  ") .$email . ("
") . ("Phone:  ") .$phone;


$sent = mail($email_to, $email_subject, $message);


?>

The queston I ask is - the 'from address' is correct because it is my own email address. So what is happening?

I would appreciate suggestions.

My guess is that this is because you have no From header defined in your message and your SMTP server is expecting one. The MAIL FROM command in SMTP is probably using your address, but your email should have a From header too. mail() accepts a header block (lines separated by ) as its fourth parameter.

$headers = "From: $your_email_address";
$sent = mail($email_to, $email_subject, $message, $headers);

The other possiblity is that your SMTP server is not accepting your authentication string as specified in your sendmail.ini