我想通过PHP邮件程序使用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维基页面中的示例,但我无法设法相应地发送电子邮件。
这是函数生成的错误消息:
SMTP - &gt;错误:无法连接到服务器:连接尝试 失败,因为关联方在a之后没有正确回应 一段时间,或建立的连接失败,因为连接 主持人没有回复。 (10060)以下发件人地址失败: a@b.c邮件程序错误:以下发件人地址失败:a@b.c
请就此事告诉我。谢谢。
答案 0 :(得分:2)
你试过了吗?
$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/)