web-dev-qa-db-ja.com

phpmailerでHTMLフォーマットを追加する

PHPメーラーを使用してオンラインフォームを直接メールに送信しています。次のようにフォームを編集します。

$message = '<p>The following request was sent from: '</p>;
$message .= '<p>Name: '.$name.'</p><br />';
$message .= '<p>Phone: '.$phone.'</p><br />';
$message .= '<p>Email: '.$email.'</p><br />';

ただし、受け取ったメールでは、<p><br />などが返されます。必要なフォーマットではなく、実際のHTMLです。それはいつも私のために働いていました、そして、私はストックPHPメール機能を使用していることに気付きました。 PHPメーラーが異なるパラメーターORを持っているかどうかわからないのは、ここで小さいだけが欠落している場合ですか?

text/htmlのヘッダーはどこに設定しますか?

    $mail = new PHPMailer();
    $mail -> IsSMTP();
    $mail -> Host = "---";
    $mail -> Port = 25;
    $mail -> SMTPAuth = false;
    $mail -> Username = EMAIL_USER;
    $mail -> Password = EMAIL_PASS;
    $mail -> FromName = $from_name;
    $mail -> From = $from;
    $mail -> Subject = $subject;
    $mail -> Body = $message;
    $mail -> AddAddress("---");

    $result = $mail -> Send();
19

デフォルトでは、PHP mail()関数は_text/plain_です。

mail()ヘッダーで、_content-type_を_text/html_に変更して試してください。

例:

_<?php 
    $body = "<html>\n"; 
    $body .= "<body style=\"font-family:Verdana, Verdana, Geneva, sans-serif; font-size:12px; color:#666666;\">\n"; 
    $body = $message; 
    $body .= "</body>\n"; 
    $body .= "</html>\n"; 

    $headers  = "From: My site<[email protected]>\r\n"; 
    $headers .= "Reply-To: [email protected]\r\n"; 
    $headers .= "Return-Path: [email protected]\r\n"; 
    $headers .= "X-Mailer: Drupal\n"; 
    $headers .= 'MIME-Version: 1.0' . "\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

    return mail($recipient, $subject, $message, $headers); 
?>
_

PHPメーラー:

IsHTML(true)を設定する必要があります:

_$mail->IsHTML(true);
_

PHP mailer、以下を設定する必要があります

$mail->IsHTML(true);

注意: $mailは、PHPMailerオブジェクトを意味します。

参照リンク: PHPMailer

46
GBD