0

我正在使用PHPMailer发送 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只是一个有效的 HTML 页面,头部带有 CSS,没有 Javascript 或任何东西,为什么电子邮件不会发送?

还有另一种方法可以做到这一点吗?请帮忙!!

4

1 回答 1

0

事实证明,由于某种原因,如果电子邮件包含传真号码,则不会发送。完全奇怪。我测试了我的整个标记,只删除了一个 10 位数的电话号码后,电子邮件终于通过了。我不是新手 - 从字面上看,这是我删除的唯一文本并且电子邮件发送良好。

有没有人见过这个??

于 2012-12-19T14:07:26.397 回答