Zend Framework : 일부 이메일 사용자는 PDF 첨부 파일을 열 때 오류가 발생합니까?
-
06-09-2019 - |
문제
이상한 문제가 있고 문제 해결 방법을 잘 모르겠습니다. Zend Framework 컨트롤러 중 하나에서 관리자가 로그인하고 PDF를 업로드하고 메일 링리스트에 가입 한 모든 사람에게 첨부 파일로 보낼 수있는 스크립트를 만들었습니다. 문제는 일부 사용자가 파일이 손상되었다고 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);
많은 큰 이메일 제공 업체는 우수한 이메일 정책을 엄격하게 준수하기위한 스틱서입니다 (찾은).
이것을 가지고 놀면 나는 당신이 그것을 일하게 할 것이라고 확신합니다.
다른 팁
나는 또한이 문제가 있었다.
어떻게 든 파일 스트림 정보를 추적하는 것이 좋습니다. 내 앱의 문제는 $fileContents = file_get_contents($fileLocation);
전화는 파일 스트림을 제대로 얻지 못하므로 아래로 떨어질 수 있습니다.
이 시도:
$mail = new Zend_Mail();
...
var_dump($mail->send());
키 아래 VAR_DUMP에서 파일 스트림이 나오는 횡설수설이 있습니다.
["_content:protected"]=>
string(37129) "%PDF-1.5
etc...
제휴하지 않습니다 StackOverflow