【问题标题】:Add Header Flag in YiiMailer在 YiiMailer 中添加 Header Flag
【发布时间】:2015-01-31 17:15:42
【问题描述】:

问题

通过 Postfix 和 Amazon SES 发送邮件时,它会抛出一个 ,

554 消息被拒绝:电子邮件地址未验证。

错误消息,并且我已经验证了我的发件人电子邮件地址,并且 Amazon SES 处于 生产环境,所以没有问题。这就是亚马逊文档所说的:

电子邮件地址未验证—您的帐户在沙盒中,并且一个 的收件人电子邮件地址尚未验证。这有可能 适用于“发件人”、“返回路径”或“发件人”地址。

如果您尚未请求对 Amazon SES 的生产访问权限,则必须 验证除收件人之外的每个收件人电子邮件地址 由 Amazon SES 邮箱模拟器提供。您还必须验证 您自己的“发件人”地址。有关详细信息,请参阅验证电子邮件 Amazon SES 中的地址和域以及测试 Amazon SES 电子邮件 正在发送。

所以,在搜索解决方案后,我发现 BLOG POST 解释了此问题的解决方法,其中说在电子邮件中添加 -f 标志将解决此问题,

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: michael@chtoen.com' . "\r\n" .
    'Return-Path: michael@chtoen.com' . "\r\n" .
    'Reply-To: michael@chtoen.com' . "\r\n";
mail($to, $subject, $message, $headers, '-f michael@chtoen.com');
?>

这确实解决了问题,但我无法将其设置为 YiiMailer。现在我将此标志直接添加到 php.ini 中,

sendmail_path to usr/sbin/sendmail -t -i -f "noreply@sbworkbench.com"

它工作正常。但我不想这样做。

我做了什么

是,创建 YiiMailer 设置为,

$mail = new YiiMailer('customerEmail', $data);
Common::setup_smtp($mail);
$mail->setLayout('mail');
$mail->render();
$mail->From = Yii::app()->params['adminEmail'];
$mail->FromName = 'PENDING NOTIFICATION';
$mail->Subject = $data['subject'];
$mail->AddAddress($data['sendTo']);

为了添加我尝试过的标志,

  1. 在发件人地址中添加标志本身:结果相同 无效的电子邮件

    $mail-&gt;From= "-f exaple@example.com"

  2. 添加额外参数“Form”,值为“-f exaple@example.com”:结果重复表单地址(很明显:D)

问题:

  1. 如何使用 YiiMailer 设置标头标志?
  2. 是否与使用 Amazon SES 的 Postfix 配置错误有关?但是,相同的设置适用于 Java 应用程序。

附言

  1. 该代码适用于没有 Amazon SES 的 sendmail 和 swiftmail 需要标头标志。

【问题讨论】:

    标签: php yii postfix-mta yii-extensions amazon-ses


    【解决方案1】:

    YiiMailer 是 PHPMailer 的包装器。您可以通过设置PHPMailer的$Sender property来设置-f标志。

    $mail->Sender = "michael@chtoen.com"
    

    【讨论】:

      猜你喜欢
      • 2015-01-25
      • 1970-01-01
      • 2012-07-06
      • 2015-04-10
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多