使用WAMP和sendmail发送电子邮件

时间:2014-11-12 04:32:39

标签: php email sendmail

我在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访问。任何人都可以帮我这个吗?

1 个答案:

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