【问题标题】:PHPMailer prevent emails from being "chained together"PHPMailer 防止电子邮件被“链接在一起”
【发布时间】:2020-09-20 19:08:54
【问题描述】:

我有一个简单的 PHP 端点,它接受 POST 请求并使用 PHPMailer 向我发送电子邮件。整个事情都很好,但我注意到在我的电子邮件客户端(网络上的 Gmail)中,我从它收到的电子邮件似乎被分组为同一线程/对话的一部分。

我可以在电子邮件标题中设置一个参数来通知电子邮件客户端每封邮件都应该被视为其自己的单独对话吗?换句话说,不要' t 链接电子邮件(如屏幕截图所示)。

我认为这种行为可以实现,因为如果您手动向某人发送单独的电子邮件(而不是回复您已经发送的电子邮件链),您可以有效地做到这一点。

这是我发送电子邮件的方式(经过简化和编辑):

<?php
  require '../utils/phpmailer/vendor/autoload.php';

  $email = $_POST['email'];
  $message = $_POST['message'];
  
  $mailer = new PHPMailer;
  $mailer->isSMTP();
  $mailer->Host = 'smtp.mailgun.org';
  $mailer->SMTPAuth = true;
  $mailer->Username = getenv('MAILGUN_SMTP_USERNAME');
  $mailer->Password = getenv('MAILGUN_SMTP_PASSWORD');
  $mailer->SMTPSecure = 'tls';
  $mailer->Port = 587;

  $mailer->From = 'noreply@mydomain.com';
  $mailer->addAddress('myemail@gmail.com', 'Me');
  $mailer->isHTML(true);

  $mailer->Subject = 'Message from Endpoint';
  $mailer->Body = 'Received a message from '.$email.'. Message: '.$message;

  if (!$mailer->send()) {
    die('failed');
  } else {
    echo 'success';
  }
?>

来自我的电子邮件客户端的屏幕截图显示消息被链接在一起作为相同的“对话”:

【问题讨论】:

    标签: php email phpmailer


    【解决方案1】:

    不,没有。

    线程中有一大堆email RFCs relating to connecting messages togetherMessage-IDIn-Reply-ToReferences 标头。不幸的是,普遍的无能和破碎的实现在实践中使它们变得有些混乱,因此邮件客户端(例如 gmail)有时会通过本土启发式方法将消息链接在一起,例如如果它们来自同一个发件人,或者恰好具有相同的主题,即使这些消息在任何合理的方面完全不相关。

    更糟糕的是,有些人开始忽略正确设置的标题,这对任何人都没有帮助。

    根据定义,特定于客户端的启发式不在电子邮件规范范围内,因此从发件人的角度来看是无法控制的。 Gmail 在这方面特别差,会随机将各种不相关的邮件链接在一起。

    当我在这里时,这看起来很可疑:

    require '../utils/phpmailer/vendor/autoload.php';
    

    您的vendor 文件夹应该属于您的项目,而不是它使用的任何库。使用从 PHPMailer 自己的 composer.json 生成的自动加载器(这就是这一行的样子)可能会包含开发依赖项,而这些依赖项不应该出现在生产环境中。

    【讨论】:

    • 欣赏这种洞察力,这很有意义。我确实注意到,经过足够的时间后,Gmail 将以与实际新电子邮件相同的方式发送一封新电子邮件,这进一步证实了该行为基本上是任意的。并感谢有关 dep 导入的指针,我会调查一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2013-08-23
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2017-02-20
    相关资源
    最近更新 更多