Magento - Как отформатировать адрес электронной почты в "Store Email Addresses"?

То, что я пытаюсь сделать, это отформатировать адрес электронной почты так Foo Bar <foo@bar.com> поэтому почтовые клиенты (в том числе веб-, такие как gmail) будут показывать отправителя как "Foo Bar", а не просто "foo", так как это префикс в письме.

Это возможно в Magento 1.5? Если я пытаюсь поместить форматирование в само поле, я получаю сообщение об ошибке.

3 ответа

Решение

Это то, что делает поле Имя отправителя. Вот как выглядит моя установка и как она выглядит в Thunderbird (мой клиент веб-почты тоже форматирует ее):

образ

Вы можете посмотреть на code/core/Mage/Core/Model/Email.php для фактической реализации почты. Вы можете заметить, что он использует Zend_Mail, Теперь вот подвох:

For security reasons, Zend_Mail filters all header fields to prevent header 
injection with newline (\n) characters. Double quotation is changed to single 
quotation and angle brackets to square brackets in the name of sender and recipients. 
If the marks are in email address, the marks will be removed.

Однако вы можете создать модуль для перезаписи текущего класса. Mage_Core_Model_Email и перезаписать send() функция. Я покрыл переписывание классов прежде в ответе на этот вопрос. Затем в этом новом переписанном классе вы могли бы использовать PHPmailer, вызывать команды оболочки для почты или любую другую библиотеку PHP, о которой вы узнали, что это разрешит такое поведение.

Удачи.

Я не уверен, что это может сработать. В magento внутри находится Zend_Validate, который выполняет проверку таких адресов электронной почты. И я не думаю, что электронная почта типа "Foo Bar" действительна. Но я думаю, что отображение в почтовом клиенте клиента зависит от клиента, не так ли?

Другие вопросы по тегам