Ответы:
Вы можете использовать hook_mail_alter()
для изменения адреса электронной почты «от» любого электронного письма, отправленного с вашего сайта. Используемый адрес электронной почты должен соответствовать стандарту RFC, что соответствует названию вашего вопроса. Но имена пользователей могут быть хитрыми и могут содержать недопустимые символы. Есть комментарий к документам D6, который предоставляет пример кода для правильного форматирования адреса электронной почты . Ваш код будет выглядеть примерно так ...
function yourmodule_mail_alter(&$message) {
$message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}
Кроме того, имейте в виду, что простая установка адреса «от» может не дать желаемых результатов во всех почтовых клиентах (см. Обсуждение очереди проблем Drupal ). Вам также может потребоваться установить «отправитель», «ошибки» и «ответить» в зависимости от ваших требований. Эти значения находятся в «заголовке» $message
переменной из приведенного выше примера кода.
Это метод из Drupal 6 для добавления имени сайта в электронное письмо. Замените variable_get ('site_name, 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, так что это должно работать.
Gmail & outlook
. Спасибо :)
Что касается настроек, которые вы должны изменить, это все еще проблема в D7. Если вы сомневаетесь, используйте следующий код в вашем hook_mail_alter:
$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;