Отправка принтеру вложения с phpmailer вызывает пустую первую страницу - PullRequest
1 голос
/ 03 мая 2019

Я работал над использованием 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 Ответ

1 голос
/ 04 мая 2019

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();

Надеюсь, у вас есть обработка ошибок, обернутая вокруг всего этого ...

...