drupal Webform HTML电子邮件挂钩

问题描述:

我试图发送一封感谢电子邮件给提交HTML格式的用户。 我发现在这样我的template.php文件中使用挂钩工作正确设置标题:drupal Webform HTML电子邮件挂钩

function mythemename_webform_mail_headers($form_values, $node, $sid) { 
    $headers = array(
    'Content-Type' => 'text/html; charset=UTF-8; format=flowed; delsp=yes', 
    'X-Mailer'  => 'Drupal Webform (PHP/'. phpversion() .')', 
); 

    return $headers; 
} 

这工作freat的“谢谢你”的电子邮件。 网站管理员使用表单结果获得的电子邮件也是html,但它不会将换行符转换为此电子邮件中的中断。我无法弄清楚如何使用挂钩这一点,所以我不得不编辑webform.module文件,并做到这一点:

function webform_mail($key, &$message, $params) { 
    $message['headers'] = array_merge($message['headers'], $params['headers']); 
    $message['subject'] = $params['subject']; 
    //$message['body'][] = drupal_wrap_mail($params['message']); // replaced this with line below 
    $message['body'][] = nl2br(drupal_wrap_mail($params['message'])); 
} 

可以这样用的template.php钩呢?

您可以使用hook_mail_alter编辑使用hook_mail创建的邮件,这是webform使用的邮件。

+0

我试过,但它不工作:功能mythemename_mail_alter(&$消息){if($ message ['id'] =='webform_18'){$ message ['body'] [] = nl2br($ message ['body']); }} – EricP 2010-09-22 13:08:54

不能在主题中使用hook_mail_alter(),只能在自定义模块中使用。

老主题,但仍然有用我猜。在网络表单模块的编辑页面有一个选项/字段集与额外的处理:

<?php 
$to = $form_values['submitted_tree']['uw_gegevens']['e_mail']; 
$from = "[email protected]"; 
$achternaam = $form_values['submitted_tree']['uw_gegevens']['uw_naam']; 


$message = drupal_mail('webform_extra', 'reply', $to, language_default(), array('body' => $body), $from, TRUE); 

function webform_extra_mail($key, &$message, $params) { 
    $message['subject'] = "TEXT."; 


    $message['body'] = " 
TEXT, " . $params['achternaam'] . " 
TEXT. 


KIND REGARDS, 
TEXT 
"; 


} ?> 

希望这有助于

希丁克范·德·沃尔