2014-12-03 123 views
0

问题添加标题标志在YiiMailer

虽然通过Postfix和通过亚马逊SES发送邮件,它抛出我,

554邮件遭拒:电子邮件地址进行验证。

错误消息,并且我有验证了我的电子邮件地址中和亚马逊SES是在生产环境,所以没有问题存在。这是亚马逊的文件说:

电子邮件地址进行验证 - 您的帐户是在沙盘和收件人的电子邮件地址的一个 尚未得到验证。这可能是 适用于“发件人”,“返回路径”或“发件人”地址。

如果你还没有要求生产访问亚马逊SES,必须 验证每个收件人的电子邮件地址,除了通过亚马逊SES邮箱模拟器提供的收件人 。您还必须验证您自己的“发件人”地址 。有关详细信息,请参阅验证电子邮件 Amazon SES中的地址和域以及测试Amazon SES电子邮件 正在发送。

SO,寻找解决方案后,我发现了一个BLOG POST解释这个问题,它说,在电子邮件中添加-f标志将解决这个问题的修复,

<?php 
$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Return-Path: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n"; 
mail($to, $subject, $message, $headers, '-f [email protected]'); 
?> 

里面居然没有解决的问题,但我无法将其设置给YiiMailer。现在我将这个标志直接添加到php.ini中,作为,

sendmail_path to usr/sbin/sendmail -t -i -f "[email protected]" 

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

我做了什么

是,创建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 [email protected]"

  2. 将值为“-f exaple @ example”的额外参数添加为“Form”。COM”:结果中重复的申请表地址(这是显而易见的:d)

问:

  1. 如何使用YiiMailer我设置头标志
  2. 这是否与后缀的配置错误与亚马逊SES?但是,相同的设置对Java应用程序工作正常

PS

  1. 代码工作的sendmail和swiftmail没有亚马逊SES没有 需要头标志的。

回答

1

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

$mail->Sender = "[email protected]" 
+0

谢谢你,伙计!这是一种拯救生命的方式。再次感谢!! – Runcorn 2014-12-09 05:29:46