gpt4 book ai didi

email - Zend Mailer 错误 "From header set twice"

转载 作者:行者123 更新时间:2023-12-05 00:38:39 35 4
gpt4 key购买 nike

我的问题基于 Zend Mail

我有一个扩展 Zend Mail 的类。基本上它应该在注册时向用户发送两封不同的邮件。

它有两个函数 sendRegistrationMail 和 sendActivationMail 并且两个方法都使用在构造函数中初始化的相同传输。

调用这两个函数 sendRegistrationMail 有效,但第二个给出错误:**From Header Set Twice**

class Mailer_Register_SendMail extends Zend_Mail
{

public $_config;
public $_transport;
public $_email;
public $_fromEmail;
public $_fromFullName;


public function __construct($email)
{
parent::__construct();

$this->_config=array('auth'=>'login','ssl'=>'tls','username'=>"$email",'password'=>'12345678','port'=>'25');
$this->_transport=new Zend_Mail_Transport_Smtp('127.0.0.1',$this->_config);
$this->_email=$email;
$this->_fromEmail="administrator@rta.com";
$this->_fromFullName="RTAsys.com";
}



public function sendRegistrationMail()

{
$emailmessage="<h3>Welcome to the Atanik Authorization</h3></br>".
"<p>You will soon receive your activation email as a separate message</p>";

$fromemail=$this->_fromEmail;
$fromfullname=$this->_fromFullName;
$to=$this->_email;
$subject="Welcome to RTA";

$this->setBodyHtml($emailmessage);
$this->setFrom($fromemail,$fromfullname);
$this->addTo($to);
$this->setSubject($subject);

try {
$this->send($this->_transport);

}
catch (Zend_Mail_Transport_Exception $ex)
{

}


}

public function sendActivationMail()
{


$subjectActivation="Activate Your Angaza Account";

$emailActivationMessage="Thank you for taking time to join Atanik
Authorization Please click the link below to activate your account now
http://localhost/RTAsys/public/Account/activate?email=".$this->_email;


$fromActivationEmail=$this->_fromEmail;

$fromActivationFullName=$this->_fromFullName;

$to=$this->_email;


$this->setBodyText($emailActivationMessage);
$this->setFrom($fromActivationEmail,$fromActivationFullName);
$this->addTo($to);
$this->setSubject($subjectActivation);
try
{
$this->send($this->_transport);
}
catch (Zend_Mail_Transport_Exception $ex)
{

}
}
}
?>

最佳答案

使用clearFrom()在每次迭代期间清除你的标题,如果你真的必须使用相同的 Zend_Mail 对象进行一次迭代:

$mail = new Zend_Mail();
foreach ($users as $key => $user) {
$mail->clearFrom();
$mail->setFrom('foo@bar');
// do some more stuff
}

错误本身是不言自明的:您正在调用 setFrom()不止一次,这是不需要的。这很可能是由实例化 Zend_Mail 引起的。迭代之外的对象并调用 setFrom()从这个迭代中。

关于email - Zend Mailer 错误 "From header set twice",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349702/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com