PHPMailerを使用してHTMLメールを送信しています。最初にを呼び出した後、最初にHTML変数とPHP変数を使用して電子メールのHTML本文を設定しましたob_start
。
これが私のコードです:
<?php
ob_start();
?>
..... a bunch of VALID HTML
<?
$body = ob_get_contents();
require_once('class.phpmailer.php');
// Send to Me
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$mail->IsSendmail(); // telling the class to use SendMail transport
try {
$mail->AddReplyTo('info@example.com', 'Company Name');
$mail->AddAddress('me@example.com', 'My Name');
$mail->SetFrom('info@example.com', 'Company Name');
$mail->Subject = "Contact Form Confirmation";
$mail->AltBody = "This is a contact form submitted through the main website.";
$mail->WordWrap = 50; // set word wrap
$mail->Body = $body;
$mail->IsHTML(true); // send as HTML
$mail->Send(); // Try to send email
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
// end try
何らかの理由で、この行:
$mail->Body = $body;
メールが送信されないようにします。私がそれを置き換える場合:
$mail->Body = "This is a test email.";
メールは完全に送信されます。
中に含まれているHTML$body
が、先頭にCSSが含まれ、Javascriptなどが含まれていない有効なHTMLページである場合、電子メールが送信されないのはなぜですか。
これを行う別の方法はありますか?助けてください!!