【问题标题】:PHP Mailer Error: Mail Address Not ValidPHP Mailer 错误:邮件地址无效
【发布时间】:2012-08-15 16:18:31
【问题描述】:

我想通过 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

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

【问题讨论】:

  • smtp 服务器可能会在 smtp 会话期间进行一些检查,例如与垃圾邮件作斗争。 b.c - 不存在的域,所以它不想从这个域路由邮件
  • 我之前使用了有效域,它生成了完全相同的消息。
  • 这不仅仅是关于域。 GMail 对垃圾邮件的打击非常激烈。很可能,他们还会检查整个电子邮件地址是否有效(它存在于域中)。尝试从您自己的域发送邮件并创建一个类似noreplay@domain.com 的电子邮件帐户,以便其他邮件服务器看到From 地址是有效的。如果您不希望它接收任何邮件,可以将此电子邮件的配额设置为 0MB。

标签: php smtp phpmailer zend-server


【解决方案1】:

你试过了吗:

$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/)

【讨论】:

  • 查看我的更新答案,您的网络端口可能有问题。
  • 这是我的错误消息:SMTP -> 错误:连接服务器失败:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接主机没有回应。 (10060) 以下发件人地址失败:rofans91@gmail.com 邮件程序错误:以下发件人地址失败:rofans91@gmail.com
  • 必须是您的主机不接受使用 SMTP 发送电子邮件。
  • 不,我的意思是你的主机在哪里。
  • 可能您的互联网提供商阻止了SMTP 访问。 Internet 提供商通常会因安全问题(垃圾邮件)阻止对 SMTP 的访问
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 2019-01-25
相关资源
最近更新 更多