0

我想通过 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 page 中的示例,但我还是无法相应地发送电子邮件。

这是该函数生成的错误消息:

SMTP -> ERROR: Failed to connect to server: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。(10060) 以下发件人地址失败:a@bc 邮件程序错误:以下发件人地址失败:a@bc

请就此事给我建议。谢谢你。

4

1 回答 1

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/)
于 2012-08-15T16:42:21.160 回答