我在Windows 8上安装了WAMP,并尝试使用sendmail发送电子邮件。 代码返回"发送的电子邮件"但是,testemail帐户在其收件箱或垃圾邮件文件夹中不会收到任何电子邮件。
这是我的sendmail.ini文件。(我已经尝试了25,587,465用于smtp_port和ssl,空白,无,tls用于smtp_ssl)
[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.
我尝试使用Google搜索解决方案,并将sendmail.exe设置为以管理员权限运行。我还在myaccount@gmail.com上启用了IMAP访问。任何人都可以帮我这个吗?
答案 0 :(得分:0)
Google需要身份验证,因此需要输入用户名和密码。 You can see their configuration settings for sendmail here.
配置中以;
分号开头的任何行都会被注释掉,不会被处理。
按照以下说明为其设置SMTP中继服务 发邮件。这些说明旨在与大多数人一起使用 部署。
不一定需要更改服务器超时。在Sendmail中, 服务器超时在Timeout.datafinal值中设置。默认情况下,它是 设置为一小时。如果Timeout.datafinal值已更改为a 值越低,将值提高到一小时。
为Sendmail配置智能主机:
将以下行添加到/etc/mail/sendmail.mc文件中: 定义(
SMART_HOST',
smtp-relay.gmail.com&#39)停止并重新启动sendmail服务器进程。
当您完成配置后, 发送测试消息以确认您的出站邮件正在流动。在 除了上面列出的服务器配置步骤,您可能还需要 如果要么在服务器上执行其他配置 以下是真的:
单击“允许的发件人”设置中的“任何地址”选项 您从您不拥有的域发送邮件,例如yahoo.com。您 发送没有“发件人”地址的邮件,例如未送达报告或 假期“不在办公室”的通知。在这些情况下,你必须 配置您的邮件服务器以确保服务器正在使用 SMTP AUTH作为注册的应用程序用户进行身份验证或提供一个 您在HELO或EHLO命令中的域名。请参阅说明 这里。