2012-04-25 114 views
1

我正在使用XAMPP V 1.7.7;控制面板3; Windows 7 Service Pack 1和Outlook调试电子邮件连接

我正在尝试使用'sendmail'建立一个电子邮件连接 - 现在处于一切终于正常工作的地步 - 除非我现在在调试日志中获得一个条目:

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

这是代码,并建立至今:

的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 = [email protected] 

; 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 

[email protected] 
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 

[email protected] 

; 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代码:

<?php 
$email_to = "[email protected]"; 
$name=$row['name']; 
$email=$row['email']; 
$phone=$row['mobtel']; 
$email_from = 'so[email protected]'; 
$email_subject = "Feedback from website"; 

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


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


?> 

我想问的是queston - 在“从地址”是正确的,因为这是我自己的电子邮件地址。那么发生了什么?

我会很感激的建议。

问候,

“H”

回答

0

我的猜测是,这是因为你有你的消息中没有定义From头和您的SMTP服务器要求之一。 SMTP中的MAIL FROM命令可能使用了您的地址,但您的电子邮件也应该有一个From标题。 mail()接受一个标题块(由\r\n分隔的行)作为其第四个参数。

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

另一种可能是,当你sendmail.ini

+0

感谢这个指定您的SMTP服务器不接受您的身份验证字符串。我已经改变了PHP,并添加了一个带有适当电子邮件地址的$标题,但我仍然得到相同的'错误'
'code'12/04/25 15:18:38 **从地址未验证 - 请参阅http:// www.btyahoo.com/verify 'code' – Hamish 2012-04-25 14:23:57

+0

非常感谢:我最终追踪到它,现在它已成功运行。我很感激。非常感谢。 – Hamish 2012-04-25 23:19:42