mail()工作正常,为什么我不能收到任何邮件?

时间:2013-10-15 09:35:38

标签: php windows email

我在php中编写了以下代码并保存为email.php

<?php
$to = "gomathi@gmail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "gomathi@gmail.com";
$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
auth_username=gomathii@gmail.com
auth_password=XXXXX
force_sender= gomathi@gmail.com

和2)更改了php.ini邮件功能如下:

SMTP =smtp.gmail.com
smtp_port = 587
sendmail_from = gomathi@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

现在我在浏览器中运行email.php。它返回&#34;邮件发送到你的id检查它。&#34; 。但邮件并没有从gomathi@gmail.com收到。为什么没有收到请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您似乎将错误的参数传递给邮件,并且永远不会使用您的$标头。

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

考虑传入To&amp;标题中的主题。

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

在电子邮件地址中添加尖括号。

完整的工作示例应该是:

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

另外,请考虑使用SSL端口465。