问题
通过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']);
添加我试过的旗帜,
在“发件人”地址中添加标志本身:结果相同 电子邮件无效
$mail->From= "-f exaple@example.com"
添加额外参数&#34; Form&#34;价值为&#34; -f exaple@example.com" :结果重复的表格地址(很明显:D)
问题:
P.S
答案 0 :(得分:1)
YiiMailer是PHPMailer的包装器。您可以通过设置PHPMailer的$Sender
property来设置-f
标志。
$mail->Sender = "michael@chtoen.com"