我想要做的是在 magento 的核心交易电子邮件中添加一个回复字段。类似于使用密件抄送在此帖子中归档的内容,但用于回复。有什么想法吗?
更新:只是为了澄清一点。在magento TEMPLATE 类中,可以添加replyTo 标头(核心功能),但在MAILER 类中则不能这样做。这就是我需要的。
我想要做的是在 magento 的核心交易电子邮件中添加一个回复字段。类似于使用密件抄送在此帖子中归档的内容,但用于回复。有什么想法吗?
更新:只是为了澄清一点。在magento TEMPLATE 类中,可以添加replyTo 标头(核心功能),但在MAILER 类中则不能这样做。这就是我需要的。
无需扩展任何类。
只需使用:
$mailTemplate = Mage::getModel('core/email_template');
$mailTemplate->setReplyTo('test@example.com');
$mailTemplate->sendTransactional($templateId, $sender, $recipient, '', $vars, $storeId);
所以我设法通过扩展 MAILER 类来解决这个问题。
围绕第 74 行,函数 send(),您需要添加$emailTemplate->setReplyTo($this->getReplyTo());
还将它添加到同一个类的函数中:
public function setReplyTo($replyto) {
return $this->setData('replyto', $replyto);
}
public function getReplyTo() {
return $this->_getData('replyto');
}
最后,当您在扩展程序上设置 replyTo (:P) 时,您只需要调用此 setReplyTo 即可。
$mailer = Mage::getModel('core/email_template_mailer');
谢谢 VladFR,但我无法弄清楚如何实施您的建议。
Reply-To 是标准的电子邮件标头:RFC 5322,第 3.6.2 节,格式为
"Reply-To:" address-list
因此,您可以像添加自定义标题一样添加它:
$mail->addHeader("Reply-To", "reply.to@example.com");
//Mage has addReplyTo() depending on version
$mail->addReplyTo('email@example.com', 'Name');
另请参阅Zend_Mail 的 Zend 文档,这是 Magento 使用的。