强制phpmailer发送空正文邮件

6
我需要使用phpMailer将一个pdf文件作为附件发送到FAX网关。如果这个电子邮件有正文内容,那么传真就会有第二页,包含这段文字。

具体来说:

$mail->Body = "";

php邮件发送器返回“消息体为空”

我应该如何强制phpMailer在没有正文消息的情况下发送电子邮件?

这里是完整的代码:

$mail = new PHPMailer();
$emailto = $_POST['sendto'].'@gateway.provider.xy';
$pdf_filename = 'PDF_list_'.date('dmY').'.pdf';
/*
STMP Auth...
*/
$mail->From = $fmail;
$mail->FromName = $row_firma['company'];
$mail->AddAddress($emailto);
$mail->AddAttachment($pdf_filename);
$mail->Subject = "Subject";
$mail->Body = "";
$mail->AltBody = "";
$mail->Send();

请使用 &nbsp 或空格 进行尝试。 - Alive to die - Anant
使用 null 初始化 body 变量。 - Lalit Sharma
两者都不起作用。使用 null 时,出现与我的帖子中相同的消息;而使用 &nbsp 或空格时,传真会得到第二个空白页面。 - Thomas1703
将您的邮件格式设置为HTML,并在正文中使用“<br/>”。希望这会起作用。 - Lalit Sharma
同样的问题:信息将被发送,但作为第二个空白传真页面。 - Thomas1703
1个回答

13

简单修复:

$mail->AllowEmpty = true;

我知道这篇文章有点老了,但是我使用了AllowEmpty选项,它非常完美,我可以发送没有正文的邮件。但是...但是在邮件源中,我有一个Content-Type:text/plain,其中包含2个字符10(0a)。 有没有一种方法可以发送没有text/plain的邮件呢? - Juan
我认为这是一个空属性体,因为消息被定义为头部、2个换行符(这两个字符——我猜你正在使用PHP mail()模式,否则将是4个字符用于2个CRLF),然后是正文,所以一个空消息就是头部,然后是2个换行符,这就是你所拥有的。但我不确定你是否可以轻松地抑制内容类型标头。也许可以子类化来删除它,考虑到这是一个边缘情况? - Synchro
1
谢谢您的回答。确实,为了删除标题,我不得不创建一个特定的类。并且使用这个“个人”类可以正常工作。 - Juan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接