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 protected]>';}
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” $messagezmiennej z powyższego przykładu kodu.
Dzięki. Dla tych, którzy dojdą do tej odpowiedzi w przyszłości, zdecydowanie zwróć uwagę na ostatni akapit. Na przykład, ustawienie $ message ['from'] NIE działało dla mnie. Musiałem ustawić wartość $ message ['headers'] ['From'].
maxedison
1
Dzięki @maxedison. Masz rację. Edytuję odpowiedź i mam nadzieję, że modyfikacja zostanie zaakceptowana.
jcisio
ustawienie $ message ['from'] działało dla mnie dobrze (5 lat później), ale uważaj, że używasz podwójnych cudzysłowów od nazwy
autopoietic
11
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ć.
Jest to metoda z Drupal 6, aby dodać nazwę witryny do wiadomości e-mail. Podstaw zmienną (nazwa strony, Drupal) odpowiednią nazwą witryny.
funkcja hook_mail_alter () nie zmieniła się w Drupal 7, więc to powinno działać.
źródło
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:
źródło