Magento 1.9及2.3版本事务邮件回复地址修改及相关代码使用疑问
Magento 1.9与2.3事务邮件Reply-To地址修改方案
你提供的代码适用性说明
你贴出的代码是Magento 1.x版本专属写法,仅适用于Magento 1.9环境,无法在Magento 2.3中使用。
如果仅需要临时修改单次自定义触发邮件的Reply-To地址,这段代码可以直接使用,将setReplyTo方法的入参修改为sales@domain.com即可,放置在你自定义触发事务邮件的业务逻辑位置即可生效。如果需要全局修改所有事务邮件的默认Reply-To地址,无需硬编码,优先走后台配置更易维护。
Magento 1.9 修改方案
全局修改(推荐)
- 登录Magento 1.9后台,依次进入
系统->配置->常规->存储电子邮件地址 - 找到事务邮件关联的发件人身份(一般默认是「一般联系人」或「销售代表」),将对应回复邮箱修改为
sales@domain.com - 保存配置后清理全站缓存即可全局生效
自定义场景代码修改
如果仅需要修改特定自定义业务场景的邮件Reply-To,使用你提供的代码修改后即可:
$mailTemplate = Mage::getModel('core/email_template'); $mailTemplate->setReplyTo('sales@domain.com'); $mailTemplate->sendTransactional($templateId, $sender, $recipient, '', $vars, $storeId);
将该代码段放置在你自定义模块的对应业务逻辑文件中即可,不要修改Magento核心源码。
Magento 2.3 修改方案
全局修改(推荐)
- 登录Magento 2.3后台,依次进入
商店->设置->配置->常规->存储电子邮件地址 - 选择对应发件人身份,将回复邮箱修改为
sales@domain.com - 保存配置后执行
bin/magento cache:clean清理缓存即可生效
自定义场景代码修改
Magento 2不能使用1.x的代码写法,推荐通过插件拦截实现自定义修改:
- 在自定义模块中注册插件,拦截
Magento\Framework\Mail\Template\TransportBuilder类的getTransport方法 - 插件逻辑示例:
public function beforeGetTransport(\Magento\Framework\Mail\Template\TransportBuilder $subject) { $subject->setReplyTo('sales@domain.com'); return []; }
配置完成后清理缓存即可对指定场景的邮件生效。
内容的提问来源于stack exchange,提问作者user15926650
相关产品推荐
相关产品推荐

