Setzen Sie die Überschrift "von" in der E-Mail auf das Format "Vollständiger Name" <[email protected]>
15
Wie kann ich den from- Header in der von Drupal gesendeten E-Mail in das Format ändern "Fullname" <[email protected]>?
Ich habe es in der Vergangenheit auf einer Drupal 6-Site geschafft, aber ich habe keinen Zugriff mehr auf diese Site und weiß nicht mehr, wie ich das machen soll.
Sie können die hook_mail_alter()Absender-E-Mail-Adresse jeder von Ihrer Website gesendeten E-Mail ändern. Die verwendete E-Mail-Adresse muss dem RFC-Standard entsprechen. Dies ist der Titel Ihrer Frage. Benutzernamen können jedoch schwierig sein und unzulässige Zeichen enthalten. Es gibt einen Kommentar zu den D6-Dokumenten, der ein Codebeispiel für die korrekte Formatierung der E-Mail-Adresse enthält . Ihr Code würde ungefähr so aussehen ...
function yourmodule_mail_alter(&$message){
$message['from']= $message['headers']['From']='"Full Name" <[email protected]>';}
Beachten Sie auch, dass das Einstellen der Absenderadresse möglicherweise nicht bei allen E-Mail-Clients zu den gewünschten Ergebnissen führt (siehe die Diskussion in der Drupal-Problemwarteschlange ). Möglicherweise müssen Sie auch "Absender", "Fehler an" und "Antwort an" entsprechend Ihren Anforderungen festlegen. Diese Werte befinden sich im "Header" der $messageVariablen aus dem obigen Codebeispiel.
Vielen Dank. Für diejenigen, die in Zukunft zu dieser Antwort gelangen, ist der letzte Absatz unbedingt zu beachten. Zum Beispiel hat es bei mir NICHT funktioniert, nur die $ message ['from'] zu setzen. Ich musste den Wert $ message ['headers'] ['From'] setzen.
Maxedison
1
Vielen Dank @maxedison. Du hast recht. Ich bearbeite die Antwort und hoffe, dass die Änderung akzeptiert wird.
JCISIO
$ message [ ‚von‘] funktionieren gut für mich Einstellung (5 Jahre später), aber Uhr , dass Sie die doppelten Anführungszeichen von Namen um verwenden
autopoietische
11
Dies ist die Methode von Drupal 6, um den Site-Namen der E-Mail hinzuzufügen. Ersetzen Sie variable_get ('site_name, Drupal') durch den gewünschten vollständigen Site-Namen.
/**
* 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'];}}
Die Funktion für hook_mail_alter () hat sich in Drupal 7 nicht geändert, daher sollte dies funktionieren.
Das ist für mich gearbeitet Gmail & outlook. Danke :)
Validasan
3
In Bezug auf die Einstellungen, die Sie ändern müssen, ist dies in D7 immer noch ein Problem. Verwenden Sie im Zweifelsfall den folgenden Code in Ihrem hook_mail_alter:
Dies ist die Methode von Drupal 6, um den Site-Namen der E-Mail hinzuzufügen. Ersetzen Sie variable_get ('site_name, Drupal') durch den gewünschten vollständigen Site-Namen.
Die Funktion für hook_mail_alter () hat sich in Drupal 7 nicht geändert, daher sollte dies funktionieren.
quelle
Gmail & outlook
. Danke :)In Bezug auf die Einstellungen, die Sie ändern müssen, ist dies in D7 immer noch ein Problem. Verwenden Sie im Zweifelsfall den folgenden Code in Ihrem hook_mail_alter:
quelle