2013-10-15 33 views
0

我在PHP編寫下面的代碼,並保存爲email.php郵件()工作正常,爲什麼我不能收到任何郵件?

<?php 
$to = "[email protected]"; 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
if(mail($to,$subject,$message,$from)) 
echo "Mail Sent to ur id check it ."; 
else 
echo "Mail not Sent"; 
?> 

和我改變了配置文件發送電子郵件。 1)改變了sendmail.ini如下:

smtp_server=smtp.gmail.com 
smtp_port=587 
default_domain= gmail.com 
[email protected] 
auth_password=XXXXX 
force_sender= [email protected] 

和2)改變的php.ini郵件功能如下:

SMTP =smtp.gmail.com 
smtp_port = 587 
sendmail_from = [email protected] 
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 

現在我運行在瀏覽器中的email.php。它返回「郵件發送到你的ID檢查它。」 。但郵件不會從[email protected]收到。爲什麼沒有收到請幫我解決這個問題。

+0

你如何配置你的SMTP服務器? – Raptor

+0

您的服務器配置不正確,SMTP服務器配置不正確,電子郵件地址不正確,或發送到垃圾郵件中。 – Luke

+3

郵件返回真並不意味着郵件已發送,它只意味着電子郵件發送子系統(如sendmail)接受郵件爲有效。由於許多原因,它可能無法實際到達目的地。 – GordonM

回答

0

看起來你傳遞了不正確的參數給郵件,並且你的$頭文件從不使用。

bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

考慮傳入到&標題在您的標題中。

$headers = array(
    'From' => $from, 
    'To' => $to, 
    'Subject' => $subject 
); 

並在電子郵件地址中添加尖括號。

完整的工作示例應該是:

<?php 
$to = "<[email protected]>"; 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
$from = "<[email protected]>"; 
$headers = "From:" . $from; 
if(mail($to,$subject,$message,$headers)) 
    echo "Mail Sent to ur id check it ."; 
else 
    echo "Mail not Sent"; 
?> 

而且,考慮使用SSL端口465