私の Web アプリケーションは、Zend_Pdf を使用して PDF ドキュメントを作成し、Zend_Mail を使用して送信します。また、ユーザーがアップロードしたドキュメント (PDF も含む) を添付します。添付ファイルは、Apple Mail を除く、一般的に使用されるすべてのメール プログラムに表示されます。作成された PDF は約 30 KB で、メッセージは外部のメール サーバーを使用して送信されます。
Apple Mail では、メッセージ リストにペーパー クリップが付いたメッセージ (添付ファイルがあることを示します) が表示されますが、メッセージを開いたときに添付ファイルが表示されません。メッセージ ヘッドの [詳細] をクリックすると、添付ファイルとそれらを保存するオプションが表示されます。
これは、電子メールを送信する (簡略化された) コードです。
<?php
$mail = new Zend_Mail('utf-8');
$mail->setFrom('niels@example.com', 'Niels')
->setSubject('Subject')
->addTo('niels@example.com', 'Niels')
->setBodyHtml('Hi there', 'utf-8', Zend_Mime::ENCODING_8BIT);
$a = new Zend_Mime_Part($pdfContent);
$a->type = 'application/pdf';
$a->filename = 'my_pdf.pdf';
$a->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
$a->encoding = Zend_Mime::ENCODING_BASE64;
$mail->addAttachment($a);
$mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
$mail->send();
受信したメールには、メッセージの次のヘッダーがあります
Content-Type: multipart/mixed; boundary="=_f6a669390c6713f60a851af814fe897f"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
HTML メールの内容:
--=_f6a669390c6713f60a851af814fe897f
Content-Type: text/html; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
添付内容:
--=_f6a669390c6713f60a851af814fe897f
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="my_pdf.pdf"
添付ファイルが Apple Mail のメッセージに表示される方法はありますか? 現在、「添付ファイルはありません」と答える人もいます。Apple は、添付ファイルを非表示/表示するために「賢い」ことをしていますか? または、別の Content-Disposition などを使用する必要がありますか? 解決策を見つけるためにかなりの時間を検索しましたが、手がかりが不足しています。