使用WAMP和sendmail发送电子邮件


Sending an email using WAMP and sendmail

我在windows 8上安装了WAMP,正在尝试使用sendmail发送电子邮件。代码返回"已发送电子邮件",但是,testemail帐户的收件箱或垃圾邮件文件夹中没有收到任何电子邮件。

这是我的sendmail.ini文件。(我已经为smtp_port和ssl尝试了25587465,为smtp_ssl尝试了blank、none、tls)

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=
error_logfile=error.log
debug_logfile=debug.log
auth_username=myaccount@gmail.com
auth_password=mypassword
hostname=localhost

这是php.ini文件的[mail函数]。

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP =localhost 
; http://php.net/smtp-port
;smtp_port = 465
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = myaccount@gmail.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path ="c:'wamp'sendmail'sendmail.exe -t -i"

这是我发送电子邮件的php文件

<?php
$to = 'testemailaccount@live.com';
$subject='testing';
$message = 'This is a test';
$headers  = 'From: myaccount@gmail.com' . "'r'n" .
        'Reply-To: myaccount@gmail.com' . "'r'n" .
        'MIME-Version: 1.0' . "'r'n" .
        'Content-type: text/html; charset=iso-8859-1' . "'r'n" .
        'X-Mailer: PHP/' . phpversion();
if(mail($to,$subject,$message,$headers))
{
    echo "email sent";
}
else 
{
echo "Invalid Email";
}
?>

这是我在调试日志文件中得到的

14/11/12 12:25:11 ** --- MESSAGE BEGIN ---
14/11/12 12:25:11 ** To: testemailaccount@live.com
14/11/12 12:25:11 ** Subject: testing
14/11/12 12:25:11 ** X-PHP-Originating-Script: 0:email.php
14/11/12 12:25:11 ** From: myaccount@gmail.com
14/11/12 12:25:11 ** Reply-To: myaccount@gmail.com
14/11/12 12:25:11 ** MIME-Version: 1.0
14/11/12 12:25:11 ** Content-type: text/html; charset=iso-8859-1
14/11/12 12:25:11 ** X-Mailer: PHP/5.3.13
14/11/12 12:25:11 ** 
14/11/12 12:25:11 ** This is a test
14/11/12 12:25:11 ** --- MESSAGE END ---
14/11/12 12:25:11 ** Connecting to smtp.gmail.com:25
14/11/12 12:25:12 ** Disconnected.
14/11/12 12:25:12 ** Disconnected.
14/11/12 12:25:12 ** Socket Error # 10061<EOL>Connection refused.

我已经尝试在谷歌上搜索解决方案,并将我的sendmail.exe设置为以管理员权限运行。我还启用了IMAP访问myaccount@gmail.com.有人能帮我吗?

Google需要身份验证,因此需要用户名和密码。您可以在此处查看他们的sendmail配置设置。

配置中任何以;分号开头的行都将被注释掉,并且不会被处理。

按照以下说明为设置SMTP中继服务发送邮件。这些说明适用于部署。

不需要更改服务器超时。在Sendmail中服务器超时设置在timeout.datafinal值中。默认情况下设置为一小时。如果Timeout.datafinal值已更改为值越低,则将该值提高到一小时。

为Sendmail配置智能主机:

将以下行添加到/etc/mail/sendmail.mc文件中:定义(SMART_HOST', smtp relay.gmail.com')

停止并重新启动发送邮件服务器进程。

完成配置后,发送一条测试消息以确认出站邮件正在流动。在里面除了上面列出的服务器配置步骤外,您可能还需要如果以下是真的:

单击"允许发件人"设置中的"任意地址"选项,然后您从您不拥有的域发送邮件,例如yahoo.com。您发送没有"发件人"地址的邮件,例如未送达报告或假期"外出"通知。在这种情况下,您必须配置邮件服务器以确保服务器正在使用SMTP AUTH以注册应用程序用户身份验证或呈现HELO或EHLO命令中的域名。请参阅说明在这里