[Drupal] envoyer un mail
jeudi 5 avril 2018Pour envoyer un email dans un module custom dans drupal rien de plus simple.
Il suffit de faire appel à la fonction drupal_mail comme ceci:
$values =array( "output" => $content_mail, "attachment" => $fileUrl ); $params = array('values' => $values); drupal_mail($module_name, $identifier_mail, $email_contact, $language, $params);
- $module_name: nom de notre module custom pour permettre à drupal de savoir de quel module est envoyé le mail
- $identifier_mail: est un code qui permettra d’identifier dans le hook mail quel contenu à mettre dans l’email.
- $email_contact:Expéditeur du mail
- $language:langue de l’email (‘en’)
- $params:Un tableau de tous les paramètres à passer à la fonction hook_mail qui donnera le rendu de l’email
Maintenant, il nous reste à créer le contenu de notre email avec le hook_mail de drupal
function mymodule_mail($key, &$message, $params) { if($key == $identifier_mail) { $message['subject'] = t('test'); $message['body'] = "Hi,<br/>"; $message['body'] .= $params['values']['output']; $attachment = array( 'filecontent' => file_get_contents($params['values']['attachment']), 'filename' => FILENAME_CSV, 'filemime' => 'application/txt' ); $message['params']['attachments'][] = $attachment; } }
Il faut remplacer $identifier_mail par la constante qu’on a passé en paramètre de drupal_mail.
$params[‘values’]: contiendra tous les paramètres passé à la fonction pour l’envoi de l’email.
Cet exemple-ci comporte aussi un exemple de fichier attaché à l’email.