1

我正在尝试向以 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 中的钩子来完成吗?

4

3 回答 3

1

You can use hook_mail_alter to edit mails created with hook_mail, which is what webform uses.

于 2010-09-20T20:05:48.543 回答
0

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

于 2010-12-22T14:38:09.237 回答
0

老话题,但我猜仍然有用。在 webform 模块的编辑页面上,有一个带有附加处理的选项/字段集:

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


} ?>

希望这可以帮助

古斯·范德瓦尔

于 2011-05-19T09:55:46.990 回答