我在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命令中的域名。请参阅说明在这里