在YiiMailer中添加标题标记

时间:2014-12-03 08:17:10

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

问题

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

  

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

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

  

电子邮件地址未经过验证 - 您的帐户位于沙盒中,而且位于沙箱中   收件人电子邮件地址尚未经过验证。这有可能   适用于" Sender"," Return-Path"或" From"地址。

     

如果您尚未请求对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 as,

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->From= "-f exaple@example.com"

  2. 添加额外参数&#34; Form&#34;价值为&#34; -f exaple@example.com" :结果重复的表格地址(很明显:D)

  3. 问题:

    1. 如何使用YiiMailer设置标题标志?
    2. 是否与使用Amazon SES错误配置Postfix有关?但是,相同的设置适用于Java Application。
    3. P.S

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

1 个答案:

答案 0 :(得分:1)

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

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