使用phpmailer向打印机发送附件会导致首页空白

时间:2019-05-03 20:03:45

标签: php printing phpmailer

我一直在使用phpmailer向打印机发送pdf附件。一切似乎都能正常工作,只是每次将pdf发送到打印机时,它都会打印空白页,然后打印附件。

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.******.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '****@****.com';                 // SMTP username
$mail->Password = '***';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;
$mail->Subject = 'PDF Attached'
$mail->AltBody = 'A pdf has been attached.';
$mail->addAttachment($filename); // attachment
$mail->AllowEmpty = true;
$mail->addAddress("***************@hpeprint.com");
$mail->msgHTML("");
$mail->send();

如果我通过自己的电子邮件手动发送电子邮件,则不会打印多余的页面。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

msgHTML也会设置AltBody,并且由于您传递的是空字符串,因此您将获得一个空的消息正文(已为其消除了错误)。由于您没有将Body设置为任何值,也没有设置isHTML,因此默认情况下,它不会发送multipart/alternative消息。我建议将其缩减为基本内容:

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.******.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '****@****.com';                 // SMTP username
$mail->Password = '***';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;
$mail->Subject = 'PDF Attached'
$mail->addAttachment($filename); // attachment
$mail->AllowEmpty = true;
$mail->addAddress("***************@hpeprint.com");
$mail->send();

我希望您在所有这些问题上都有一些错误处理...