簡體   English   中英

drupal Webform HTML電子郵件掛鈎

[英]drupal Webform HTML Email hooks

我正在嘗試向用戶發送一封感謝郵件,以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中的鈎子來完成嗎?

您可以使用hook_mail_alter編輯與創建郵件hook_mail ,這正是Web窗體使用。

您不能在主題中使用hook_mail_alter(),而只能在自定義模塊中使用。

老話題,但我想仍然有用。 在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
";


} ?>

希望這可以幫助

Guus van de Wal

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM