【问题标题】:PHPMailer does not work while php mail() worksPHPMailer 不工作,而 php mail() 工作
【发布时间】:2021-06-03 05:29:01
【问题描述】:

它在同一个服务器+同一个文件上 php本机邮件工作:

        $to      = 'myaddress@outlook.com';
        $subject = 'the subject';
        $message = 'hello';
        $headers = 'From: webmaster@example.com' . "\r\n" .
            'Reply-To: webmaster@example.com' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);

虽然 PHPMailer 没有,但 $mail->send() 的结果为真,但永远不会收到电子邮件

$mail = new PHPMailer();
        $mail->setFrom('fiwejfiwe@gmail.com');
        $mail->addReplyTo('fiwejfiwe@gmail.com');
        $mail->addAddress('myaddress@outlook.com');
        $mail->Subject = 'PHPMailer mails test';
        $mail->Body = 'This is a plain-text message body';

        if (!$mail->send()) {
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else {
            echo 'Message sent!';
        }

【问题讨论】:

  • 您是否尝试过在两种情况下使用完全相同的数据进行测试?这不是一个有效的实验,因为电子邮件数据的内容不同......所以你不能说肯定是 PHPMailer 有问题......相反,收件人可能会出于不同的原因将您的邮件识别为可疑邮件(发件人地址最有可能是罪魁祸首,因为它显然与您发送邮件的服务器不匹配,因此看起来像是垃圾邮件/欺骗)
  • 你不需要在你的服务器上创建一个电子邮件来使用 PHPmailer 吗? (可能是错的)
  • @Crimin4L 仅与使用 mail() 相同
  • 两者都通过您的本地邮件服务器发送,因此答案将在您的邮件服务器的日志中。

标签: php phpmailer


【解决方案1】:

谜团解开,Linux 服务器已配置为不接受来自地址的@gmail.com。

【讨论】:

  • 确实如此。不要发送假装来自实际上不是的帐户的电子邮件。
  • 确实,Google 的 SPF 配置意味着您发送的任何使用伪造地址发送的邮件都会被拒绝或标记为垃圾邮件。
猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 2013-08-01
  • 2018-06-04
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
相关资源
最近更新 更多