Ich möchte das E-Mail-System von Drupal verwenden, um programmgesteuert eine E-Mail von meinem benutzerdefinierten Modul aus zu senden. Ist das möglich?
function MODULENAME_mail ($key,&$message, $params){switch($key){case'mymail':// Set headers etc
$message['to']='[email protected]';
$message['subject']= t('Hello');
$message['body'][]= t('Hello @username,', array('@username'=> $params['username']));
$message['body'][]= t('The main part of the message.');break;}}
Er hat Recht, aber um ein bisschen klarer zu werden, bietet hook_mail Ihnen die Möglichkeit, eine E-Mail anhand eines von Ihnen definierten beliebigen Schlüssels zu strukturieren und zu gestalten. drupal_mail () ist das, was Sie anrufen, um eine E-Mail zu senden. Übergeben Sie den Schlüssel für die Struktur, die Sie verwenden möchten. (und das Modul, das auf diesen Schlüssel reagiert)
Jason Smith
9
In diesem Beispiel $message['to']ist hart zu codieren [email protected]. Wenn Sie dies weglassen, wird die Nachricht an den Empfänger gesendet, der beim Anruf angegeben drupal_mail()wird.
Pfrenssen
12
Wenn Sie E-Mails einfacher versenden möchten, lesen Sie Simple Mail . Es ist ein Modul, an dem ich arbeite, um das Versenden von E-Mails mit Drupal 7+ viel einfacher zu machen, und es erfordert keine zusätzlichen Hook-Implementierungen oder MailSystem-Kenntnisse. Das Senden einer E-Mail ist so einfach wie:
Sie können diesen Code in einem Hook Ihrer Wahl in Ihrem benutzerdefinierten Modul verwenden:
function yourmodulename_mail($from ='default_from', $to, $subject, $message){
$my_module ='yourmodulename';
$my_mail_token = microtime();if($from =='default_from'){// Change this to your own default 'from' email address.
$from = variable_get('system_mail','[email protected]');}
$message = array('id'=> $my_module .'_'. $my_mail_token,'to'=> $to,'subject'=> $subject,'body'=> array($message),'headers'=> array('From'=> $from,'Sender'=> $from,'Return-Path'=> $from,),);
$system = drupal_mail_system($my_module, $my_mail_token);
$message = $system->format($message);if($system->mail($message)){return TRUE;}else{return FALSE;}}
Dann können Sie die obige Funktion wie folgt verwenden:
$user = user_load($userid);// load a user using its uid
$usermail =(string) $user->mail;// load user email to send a mail to it OR you can specify an email here to which the email will be sent
customdraw_mail('default_from', $usermail,'You Have Won a Draw -- this is the subject','Congrats! You have won a draw --this is the body');
Antworten:
Mit hook_mail und drupal_mail können Sie eine E-Mail erstellen und versenden.
Implementiere eine E-Mail mit hook_mail:
Um eine Mail zu senden, benutze drupal_mail:
Offensichtlich ersetzen Sie die Parameter: $ key sollte gleich 'mymail' sein
Eine E-Mail wird in wenigen Schritten versendet:
quelle
$message['to']
ist hart zu codieren[email protected]
. Wenn Sie dies weglassen, wird die Nachricht an den Empfänger gesendet, der beim Anruf angegebendrupal_mail()
wird.Wenn Sie E-Mails einfacher versenden möchten, lesen Sie Simple Mail . Es ist ein Modul, an dem ich arbeite, um das Versenden von E-Mails mit Drupal 7+ viel einfacher zu machen, und es erfordert keine zusätzlichen Hook-Implementierungen oder MailSystem-Kenntnisse. Das Senden einer E-Mail ist so einfach wie:
quelle
Sie können eine einfachere Methode zum Versenden von E-Mails verwenden, indem Sie das Mailsystem auschecken . Es ist ein Modul.
quelle
Sie können diesen Code in einem Hook Ihrer Wahl in Ihrem benutzerdefinierten Modul verwenden:
Dann können Sie die obige Funktion wie folgt verwenden:
quelle