2010-09-20 3 views
1

Я пытаюсь отправить письмо с благодарностью пользователю, отправившему форму в HTML. я узнал, используя крюк в моем файле template.php, как это работает, чтобы правильно установить заголовок:drupal Webform HTML Email hooks

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?

ответ

1

Вы можете использовать hook_mail_alter для редактирования писем, созданных с помощью hook_mail, что и использует веб-форма.

+0

Я попытался это, но он не работает: функция mythemename_mail_alter (& $ message) {if ($ message ['id'] == 'webform_18') {$ message ['body'] [] = nl2br ($ message ['body']); }} – EricP

0

Вы не можете использовать hook_mail_alter() в теме только в настраиваемом модуле.

0

Старая тема, но все же полезная. Думаю. На странице редактирования модуля WebForm там есть опция/FIELDSET с дополнительной обработкой:

<?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 
"; 


} ?> 

Надеется, что это помогает

Гус ван де Wal

Смежные вопросы