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

hook_mail_alterWebフォームで作成したメールの編集に使用できhook_mailます。

于 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 に答える