Я отправляю письмо с вложением в формате PDF через PHP. Он отлично работает на каждой веб-почте, Thunderbird, Outlook, iOs, но в приложении Mac OS X Mail у меня странное поведение: когда я нажимаю на PDF-вложение, он открывает домашнюю страницу веб-сайта, откуда я отправлял электронную почту в браузере. Хотя, если я щелкну правой кнопкой мыши на вложении и решу открыть в Acrobat PDF, он будет работать нормально. Другие электронные письма с вложением в формате PDF открываются, как и ожидалось, поэтому они связаны с некоторым заголовком почты, а не с конфигурацией программного обеспечения.
Известная проблема в том, что PDF открывается в браузере вместо Acrobat PDF, что не было бы такой проблемой, если бы оно не перенаправляло на домашнюю страницу.
Вот соответствующие части источника электронной почты:
To: [email protected]
Subject: My email
X-PHP-Originating-Script: 10006:mail.inc.php
From: [email protected]
MIME-Version: 1.0
X-Mailer: Html Mime Mail Class
Content-Type: multipart/mixed;
boundary="=_02f1bb81e24e79ba7b9a88259d584c02"Reply-to: [email protected]
This is a MIME encoded message.
--=_02f1bb81e24e79ba7b9a88259d584c02
Content-Type: multipart/alternative;
boundary="=_9bb751c17df5df4380796b97e7544792"
--=_9bb751c17df5df4380796b97e7544792
Content-Type: text/plain; charset="utf-8"Content-Transfer-Encoding: 7bit
No text version was provided
--=_9bb751c17df5df4380796b97e7544792
Content-Type: text/html; charset="utf-8"Content-Transfer-Encoding: quoted-printable
[... html content ...]
--=_9bb751c17df5df4380796b97e7544792--
--=_02f1bb81e24e79ba7b9a88259d584c02
Content-Type: application/pdf;
name="my_pdf_file.pdf"Content-Disposition: attachment; filename="my_pdf_file.pdf"Content-Transfer-Encoding: base64
[... attachment in base 64 ...]
Так Content-Type
а также Content-Disposition
правильно установлены, но, похоже, Apple Mail игнорирует Content-Disposition
, Есть ли другие заголовки, которые я мог бы установить, чтобы принудительно загрузить вложение?
Не уверен, если это имеет отношение к проблеме, но я использую этот почтовый класс (HTML Mime Mail) со следующей настройкой:
require_once("../../lib/HTMLMimeMail/mail.inc.php");
ob_start();
include('../../app/View/Email/myemail.php');
$bodyHtml = ob_get_contents();
ob_clean();
$subject = 'My email';
$_envoiMail = new html_mime_mail("X-Mailer: Html Mime Mail Class");
$_envoiMail->set_charset('utf-8');
$_envoiMail->add_html($bodyHtml, '');
$file_name = '../../../../uploads/my_pdf_file.pdf';
$attachment = $_envoiMail->get_file(dirname(__FILE__) . '/' . $file_name);
$_envoiMail->add_attachment($attachment, 'my_pdf_file.pdf', 'application/pdf');
$_envoiMail->build_message();
$_envoiMail->send('Me', '[email protected]', 'Them', '[email protected]', $subject, "Reply-to: [email protected]");
Задача ещё не решена.
Других решений пока нет …