J'aimerais utiliser le système de messagerie de Drupal pour envoyer par courrier électronique un courrier électronique à partir de mon module personnalisé. Est-ce possible?
Implémenter une adresse e-mail en utilisant hook_mail:
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;}}
Il a raison, mais pour clarifier un peu, hook_mail vous fournit un moyen de structurer et de cibler un email basé sur une clé arbitraire que vous définissez. drupal_mail () est ce que vous appelez pour envoyer un email. Passez la clé de la structure que vous souhaitez utiliser. (et le module qui répond à cette clé)
Jason Smith
9
Dans cet exemple, il $message['to']est codé en dur [email protected]. Omettez ceci et le message sera envoyé au destinataire spécifié lors de l' drupal_mail()appel.
pfrenssen
12
Si vous souhaitez un moyen plus simple d’envoyer des courriels, consultez Simple Mail ; C'est un module sur lequel je travaille pour faciliter l'envoi de courriers électroniques avec Drupal 7+, et il ne nécessite aucune implémentation de hook supplémentaire ni aucune connaissance de MailSystem. Envoyer un email est aussi simple que:
Vous pouvez utiliser ce code dans un crochet de votre choix dans votre module personnalisé:
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;}}
Ensuite, vous pouvez utiliser la fonction ci-dessus comme ceci:
$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');
Réponses:
En utilisant hook_mail et drupal_mail vous pouvez créer et envoyer un e-mail.
Implémenter une adresse e-mail en utilisant hook_mail:
Pour envoyer un mail, utilisez drupal_mail:
Évidemment, remplacez les paramètres: $ key doit être égal à 'mymail'
Un e-mail est envoyé en quelques étapes:
la source
$message['to']
est codé en dur[email protected]
. Omettez ceci et le message sera envoyé au destinataire spécifié lors de l'drupal_mail()
appel.Si vous souhaitez un moyen plus simple d’envoyer des courriels, consultez Simple Mail ; C'est un module sur lequel je travaille pour faciliter l'envoi de courriers électroniques avec Drupal 7+, et il ne nécessite aucune implémentation de hook supplémentaire ni aucune connaissance de MailSystem. Envoyer un email est aussi simple que:
la source
Vous pouvez utiliser un moyen plus simple d’envoyer des courriers électroniques, consulter le système de messagerie ; c'est un module.
la source
Vous pouvez utiliser ce code dans un crochet de votre choix dans votre module personnalisé:
Ensuite, vous pouvez utiliser la fonction ci-dessus comme ceci:
la source