我想通过PHP Mailer使用Gmail SMTP服务器发送电子邮件。
我在我的机器上运行Zend Server Community Edition。
以下是我的代码(编辑以隐藏某些机密信息)。
require_once('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$body = "test msg";
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = "587";
$mail->Username = "<valid-id>";
$mail->Password = "<valid-password>";
$mail->SetFrom('a@b.c', 'Name');
$mail->AddReplyTo("a@b.c","Name");
$mail->Subject = "subject";
$mail->MsgHTML($body);
$address = "d@e.f";
$mail->AddAddress($address, "halo:);
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message sent!";
}
尽管完全遵循了 PHP Mailer wiki 页面中的示例,但我不知何故无法相应地发送电子邮件。
这是函数生成的错误消息:
SMTP -> 错误:无法连接到服务器:连接尝试 失败,因为连接方在 时间段,或建立的连接因连接而失败 主机无法响应。(10060) 以下发件人地址失败: a@b.c 邮件程序错误:以下发件人地址失败:a@b.c
请告知我此事。谢谢。
你试过吗:
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = "465";
我已经在您的代码中更改了我的电子邮件,我的smtp用户,我的设置^^^,密码和行:
$mail->AddAddress($address, "Mihai"); // you forgot a quote
使用PHPMailer5.2.1
和结果:
SMTP -> FROM SERVER:220 mx.google.com ESMTP gq2sm2073759bkc.13
SMTP -> FROM SERVER: 250-mx.google.com at your service, [***.***.***.***] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH 250 ENHANCEDSTATUSCODES
SMTP -> FROM SERVER:250 2.1.0 OK gq2sm2073759bkc.13
SMTP -> FROM SERVER:250 2.1.5 OK gq2sm2073759bkc.13
SMTP -> FROM SERVER:354 Go ahead gq2sm2073759bkc.13
SMTP -> FROM SERVER:250 2.0.0 OK 1345113839 gq2sm2073759bkc.13
Message sent!
收到的邮件:
X-Mailer: PHPMailer 5.2.1 (http://code.google.com/a/apache-extras.org/p/phpmailer/)