5

drupal_mail関数(D7)を使用してHTMLメールを生成しようとしているカスタムモジュールがあります。メールが届き、text / htmlも表示されますが、受信トレイに到達する前に、どこかでHTM1が削除されているように見えます。

まず、関数で、タイトル/本体/その他の変数を作成し、カスタム関数に送信します。

    $body = "We thought you'd like to know that ".$fullname." has marked your project as completed.
    <br /><br />
    Please visit the link at <a href='http://".$_SERVER['HTTP_HOST']."/survey/customer/".$customer[0]->unique_id."'>http://".$_SERVER['HTTP_HOST']."/survey/customer/".$customer[0]->unique_id."</a> to take the survey.";
    $returnMail = latch_send_mail('pro_realized',$customer[0]->customer_email,$user->mail,$title,$body);

次に、latch_mailのlatch_send_email関数があります。

function latch_mail($key, &$message, $params) {
    $headers = array(
    'MIME-Version' => '1.0',
    'Content-Type' => 'text/html; charset=UTF-8; format=flowed',
    'Content-Transfer-Encoding' => '8Bit',
    'X-Mailer' => 'Drupal'
);

foreach ($headers as $key => $value) {
    $message['headers'][$key] = $value;
}

$message['body'][] = $params['body'];
$message['subject'] = $params['subject'];
}

function latch_send_mail($key,$to,$from,$title,$body,$headers='') {
    $params['body']=$body;
    $params['subject'] = t($title);
    return drupal_mail('latch', $key, $to, language_default(), $params, $from,TRUE);
}

メールは私のタグとbrタグで届くと思いますが、次のように届きます。

We thought you'd like to know that John Doe has marked your project as completed. Please visit the link at http://latch.local/survey/customer/34c91b8883cd70b32c65feb7adf9c393 [1] to take the survey. [1] http://latch.local/survey/customer/34c91b8883cd70b32c65feb7adf9c393

どういうわけか、brタグを完全に削除しながら、リンクを取得して脚注に変換しています。

あなたが提供できるどんな助けもいただければ幸いです。ありがとう!

4

2 に答える 2

4

デフォルトでは、Drupal は HTML メールを送信できません。Drupal が HTML メールをサポートするには、HTML メール モジュールが必要です。http://drupal.org/project/htmlmail すべての HTML をそのように送信する必要があることを確認したら。

于 2012-12-18T23:32:31.587 に答える