Установите заголовок "от" в электронном письме в формате "Полное имя".


Как я могу изменить заголовок из в электронном письме, отправленном с Drupal, чтобы он был в формате "Fullname" <[email protected]>?

Мне удалось сделать это на сайте Drupal 6 в какой-то момент в прошлом, но у меня больше нет доступа к этому сайту, и я не помню, как это сделать.

 14
Author: kiamlaluno, 2011-07-18

3 answers

Вы можете использовать hook_mail_alter() чтобы изменить адрес электронной почты "от" любого электронного письма, отправленного с вашего сайта. Используемый адрес электронной почты должен соответствовать стандарту RFC, что соответствует названию вашего вопроса. Но имена пользователей могут быть сложными и могут содержать недопустимые символы. В документах D6 есть комментарий, в котором приведен пример кода для правильного форматирования адреса электронной почты. Ваш код будет выглядеть примерно так...

function yourmodule_mail_alter(&$message) {
  $message['from'] = $message['headers']['From'] = '"Full Name" <[email protected]>';
}

Кроме того, имейте в виду, что просто установка адрес "от" может не давать желаемых результатов во всех почтовых клиентах (см. Обсуждение очереди проблем Drupal). Вам также может потребоваться установить "отправитель", "ошибки" и "ответить" в зависимости от ваших требований. Эти значения находятся в "заголовке" переменной $message из приведенного выше примера кода.

 17
Author: SoftArtisans, 2013-10-01 15:32:59

Это метод из Drupal 6 для добавления имени сайта в электронное письмо. Замените variable_get ('имя_сайта, Drupal') Полным Именем Сайта, которое вы хотите.

/**
* Implementation of hook_mail_alter().
* Here we allow the site name to be used as the senders name for outgoing email.
* see http://drupal.org/node/209672
*/
function mymodule_mail_alter(&$message){
  $default_from = variable_get('site_mail', ini_get('sendmail_from'));

  if($message['from'] == $default_from){
    $message['from'] = '"'. variable_get('site_name', 'Drupal') .'" <'. $default_from .'>';
    $message['headers']['From'] = $message['headers']['Sender'] = $message['headers']['Return-Path'] = $message['headers']['Errors-To'] = $message['headers']['Reply-To'] = $message['from'];
  }
}

Функция для hook_mail_alter() не изменилась в Drupal 7, так что это должно сработать.

 11
Author: iStryker, 2011-07-18 18:45:58

Что касается настроек, которые вы должны изменить, это все еще проблема в D7. Если вы сомневаетесь, используйте следующий код в своем hook_mail_alter:

$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;
 3
Author: Countzero, 2013-02-07 06:20:20