Друпал Webform HTML перехватывает электронную почту - PullRequest
1 голос
/ 20 сентября 2010

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

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;
} 

Это работает для письма "Спасибо". Письмо, которое администратор сайта получает с результатами формы, также является 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?

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

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

0 голосов
/ 19 мая 2011

Старая тема, но все еще полезная, я думаю. На странице редактирования модуля веб-формы есть опция / fieldset с дополнительной обработкой:

<?php
$to = $form_values['submitted_tree']['uw_gegevens']['e_mail'];
$from = "no-reply@example.com";
$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
";


} ?>

Надеюсь, это поможет

Гус ван де Валь

0 голосов
/ 22 декабря 2010

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

...