2012-04-25 115 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