【发布时间】: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']);
为了添加我尝试过的标志,
-
在发件人地址中添加标志本身:结果相同 无效的电子邮件
$mail->From= "-f exaple@example.com" 添加额外参数“Form”,值为“-f exaple@example.com”:结果重复表单地址(很明显:D)
问题:
- 如何使用 YiiMailer 设置标头标志?
- 是否与使用 Amazon SES 的 Postfix 配置错误有关?但是,相同的设置适用于 Java 应用程序。
附言
- 该代码适用于没有 Amazon SES 的 sendmail 和 swiftmail 需要标头标志。
【问题讨论】:
标签: php yii postfix-mta yii-extensions amazon-ses