2010-10-29 4 views
4

Comment envoyer des emails HTML en drupal 6 en utilisant drupal_mail? Comment puis-je modifier l'en-tête HTML pour afficher le contenu des emails en HTML.Comment envoyer un email HTML en drupal 6 en utilisant drupal_mail?

+1

recherche sur Google relevai [comment envoyer E-mail HTML avec drupal_mail()?] (Http://drupal.org/node/358855) –

+0

n'a pas eu de solution à partir de là :( – Dev

Répondre

5

Vous pouvez pour définir l'en-tête hook_mail_alter()

<?php 
hook_mail_alter(&$message) {  
    $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed'; 
} 
?> 
2

Je sais que cela peut être en retard, mais il peut aider les autres. Il est préférable d'utiliser drupal_mail, puis définir les en-têtes dans hook_mail au lieu de hook_mail modifier. un exemple serait comme:

/*drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE) 
    Lets say we call drupal_mail from somewhere in our code*/ 
    $params = array(
    'subject' => t('Client Requests Quote'), 
    'body' => t("Body of the email goes here"), 
); 
    drupal_mail("samplemail", "samplemail_html_mail", "[email protected]", language_default(), $params, "[email protected]"); 

/*We now setup our mail format, etc in hook mail*/ 
function hook_mail($key, &$message, $params) 
{ 
    case 'samplemail_html_mail': 
      /* 
      * Emails with this key will be HTML emails, 
      * we therefore cannot use drupal default headers, but set our own headers 
      */ 
      /* 
      * $vars required even if not used to get $language in there since t takes in: t($string, $args = array(), $langcode = NULL) */ 
      $message['subject'] = t($params['subject'], $var, $language->language); 
      /* the email body is here, inside the $message array */ 
      $body = "<html><body> 
       <h2>HTML Email Sample with Drupal</h2> 
       <hr /><br /><br /> 
       {$params['body']} 
       </body></html>"; 
      $message['body'][] = $body; 
      $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed'; 
      break; 
} 

Si cela ne sait pas pour vous, un tutoriel complet sur ce qui peut être trouvé sur My Blog

Hope this helps
JK

Questions connexes