我一直在使用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();
如果我通过自己的电子邮件手动发送电子邮件,则不会打印多余的页面。
任何帮助将不胜感激
答案 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();
我希望您在所有这些问题上都有一些错误处理...