Zend Frameworkの:PDFの添付ファイルを開こうとすると一部の電子メールユーザーは、エラーを取得しますか?

StackOverflow https://stackoverflow.com/questions/733040

質問

私は奇妙な問題を抱え、それをトラブルシューティングするかどうかはわかりません。私は、管理者が、ログインPDFをアップロードすると、メーリングリストに加入みんなの添付ファイルとして送信することができます私のZend Frameworkのコントローラのいずれかでスクリプトを作成しました。問題は、一部のユーザーは、ファイルが破損していることを、彼らはPDFの添付ファイルを開くことができないことを報告しているということです。私はこれが唯一のAOLユーザーに起こっていると思いますが、私は肯定的ではありませんよ。以前にこの問題が発生したことがありますか?それともそれはAOLとの問題が、私のコードで何か間違っていないのですか?

ここで仕事をするコードです

また、私は、ZFのバージョン1.6.0を使用しています。それが関連しているかどうかわからない。

//assuming the form is valid:
$table = new Subscribers();
$rowset = $table->fetchAll();
foreach ($rowset as $row) {
    $mail = new Zend_Mail();
    $mail->setBodyText($form->getElement('body')->getValue())
         ->setFrom('weekly-update@email.com', 'Weekly Update')
         ->addTo($row->email)
         ->setSubject($form->getElement('subject')->getValue());
    $fileLocation = $form->getElement('attachment')->getValue();
    $fileContents = file_get_contents($fileLocation);
    $attachment = $mail->createAttachment($fileContents);
    $attachment->filename = str_replace(Zend_Registry::get('config')->downloadsLocation . '/', '', $fileLocation);          
    $mail->send();
}
役に立ちましたか?

解決

これは、このコード行であること(私に)表示されます:

$attachment = $mail->createAttachment($fileContents);

あなたはおそらくZend_Mailのフレームワーク::

のcreateAttachment方法で利用可能な追加のヘッダー情報を追加する必要があります
$attachment = $mail->createAttachment($fileContents,
                        Zend_Mime::DISPOSITION_INLINE);

多くの大きな電子メールプロバイダは、(私が見つけた)優れた電子メールポリシーを厳守のためsticklersされます。

これで遊んでみてください、私はあなたはそれが仕事を得るだろうと確信しています。

他のヒント

私もこの問題を抱えています。

私は、あなたが何らかの形でファイルストリーム情報をトレースことをお勧めしたいです。私のアプリの問題は$fileContents = file_get_contents($fileLocation);コールが正常にファイルのストリームを取得していなかったということでしたので、あなたが落下する可能性がある場所です。

これを試してください:

$mail = new Zend_Mail();
...
var_dump($mail->send());

あなたはファイルストリームは、キーの下のvar_dumpに出てくるちんぷんかんぷんの束が表示されます

["_content:protected"]=>
        string(37129) "%PDF-1.5
        etc...
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top