2011-10-29 3 views
4

내 프로젝트에서 YiiMail 확장 프로그램을 사용하여 사용자에게 메일을 보냅니다. 나는 파일을 첨부하고있다. 그러나 문제는 첨부 파일을 사용하여 메일을 보낼 수 없다는 것입니다. 내 메일 코드는 아래와 같습니다.YiiMail 보내는 첨부 파일

$this->email->setBody('<p>'.$email.'-'.$name.'-'.$details.'</p>', 'text/html'); 
$this->email->from = "[email protected]"; 
$this->email->setSubject('Direct Request'); 
$this->email->attach(CUploadedFile::getInstanceByName('fileupload')); 
$this->email->setTo(array($emailId => '[email protected]')); 

이 코드를 사용하면 메일이 전송되지 않으며 오류 메시지가 표시됩니다. Swift_Mime_SimpleMessage에 전달 인수 1 : (첨부) 인터페이스 Swift_Mime_MimeEntity를 구현해야합니다은 CUploadedFile의 인스턴스는

이 오류가 표시되고있는 이유와 이에 대한 모든 솔루션은 무엇인가을 부여. 미리 감사드립니다.

답변

8

첨부 파일을 SwiftMailer Swift_Mime_MimeEntity 유형으로 변환해야합니다. CUploadedFile::getInstanceByName('fileupload')CUploadedFile 클래스를 반환하며 SwiftMailer는 처리 방법을 알지 못합니다. Swift attachments here에 대한 자세한 정보

나는이 테스트를하지 않은,하지만 당신은 같은 것을 할 필요가있을 것이다 :

$uploadedFile = CUploadedFile::getInstanceByName('fileupload'); // get the CUploadedFile 
$uploadedFileName = $uploadedFile->tempName; // will be something like 'myfile.jpg' 
$swiftAttachment = Swift_Attachment::fromPath($uploadedFileName); // create a Swift Attachment 
$this->email->attach($swiftAttachment); // now attach the correct type 

행운을 빕니다!

+0

대단히 감사합니다. 당신은 나를 구해 줬어요. 고마워요, 많은 친구. –

관련 문제