将Magento联系表单电子邮件的“发件人”字段更改为发送者

4
如何更改联系表单电子邮件的“发件人”字段为发件人的电子邮件地址?例如,如果客户使用电子邮件“test@test.com”填写表单,如何使生成的电子邮件来自“test@test.com”?
我已查看系统管理面板中的“电子邮件发送者”字段,但这仅允许一系列预设商店电子邮件。
谢谢。
2个回答

7
这个需要发送的地方在app/code/core/Mage/Contacts/controllers/IndexController.php文件中的第100行左右。看起来,邮件的回复地址已经设置为来自邮件的电子邮件地址,所以如果你只是想要更容易地回复,我建议不要去尝试更改它。
另一个问题是,使用伪造的“发件人”地址发送电子邮件可能会导致您的网站很快被许多电子邮件提供商列入黑名单,这可能会影响您的业务的其余部分。
话虽如此,如果你仍然想做这件事,在那个文件中稍微修改一下这段代码即可:
            $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                ->setReplyTo($post['email'])
                ->sendTransactional(
                    Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
                    Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER), // change this
                    Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
                    null,
                    array('data' => $postObject)
                );

希望能够帮到您!
谢谢, 乔

顶级质量的回答 - 没有什么比伪造的“发件人”电子邮件更让我烦恼了! - ʍǝɥʇɐɯ
只是为了澄清,该电子邮件发送给我们的管理员,将发件人地址设置为发送者是我们支持系统所必需的。我不从事招揽可疑电子邮件的业务,我保证。话虽如此,这段代码非常有效。感谢您的帮助。 - Geoff
@Geoff,从电子邮件垃圾邮件的角度来看,您发送的管理员邮件和交易邮件之间没有区别。只是友好提醒,很高兴它奏效了。 - Joe Mastey
所以,只是为了澄清一下 - 将回复地址设置为客户的电子邮件不会有垃圾邮件问题吗?但欺骗发件人字段可能会导致电子邮件提供商(例如hotmail)将服务器URL列入黑名单,从而在未来屏蔽来自该域的传入电子邮件? - Jan 'Saffi' Stekelgunsson

1

Magento联系表格 - 我一直在收到自己发送的电子邮件 是这个问题的一个较新的副本,Joe的答案让我走上了正确的道路。在我的重复问题的答案中,我编写了一个自定义模块来覆盖app/code/core/Mage/Contacts/controllers/IndexController.php,最终将上面指定的行更改为array('name'=>$post['name'], 'email'=>$post['email']),以进行修复。

在我紧急修复核心代码时,我会在每行末尾加上两次我的缩写注释//CKCK hack to fix ___,以确保它们能够正确地超载,并且您可以通过ssh shell使用grep查看所有修改:app/code/core$ grep -rn "CKCK" *

我还使用github进行版本控制,这也很有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接