Odpowiedzi:
Możesz użyć, hook_mail_alter()
aby zmienić adres e-mail „z” każdego e-maila wysłanego z Twojej witryny. Używany adres e-mail musi być zgodny ze standardem RFC, co stanowi tytuł pytania. Ale nazwy użytkowników mogą być trudne i mogą zawierać niedozwolone znaki. W dokumentacji D6 znajduje się komentarz, który zawiera próbkę kodu do prawidłowego formatowania adresu e-mail . Twój kod wyglądałby jak ...
function yourmodule_mail_alter(&$message) {
$message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}
Pamiętaj też, że samo ustawienie adresu „od” może nie przynieść pożądanych rezultatów we wszystkich klientach e-mail (patrz dyskusja na temat kolejki problemów Drupal ). Może być konieczne ustawienie „nadawcy”, „błędów do” i „odpowiedzi” w zależności od wymagań. Wartości te znajdują się w „nagłówku” $message
zmiennej z powyższego przykładu kodu.
Jest to metoda z Drupal 6, aby dodać nazwę witryny do wiadomości e-mail. Podstaw zmienną (nazwa strony, Drupal) odpowiednią nazwą witryny.
/**
* 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'];
}
}
funkcja hook_mail_alter () nie zmieniła się w Drupal 7, więc to powinno działać.
Gmail & outlook
. Dzięki :)
Jeśli chodzi o ustawienia, które musisz zmienić, jest to nadal problem w D7. W razie wątpliwości użyj następującego kodu w swoim hook_mail_alter:
$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;