2017-10-05 1 views
1

에 우편으로 메일 메시지를 첨부, 내가 전자 메일에 메일 객체를 첨부 할 :레일 5.1 ActionMailer에서 레일

def attach_mail(original_email) 
    attachments['original-email.eml'] = { mime_type: 'message/rfc822', encoding: '7bit', content: original_email.to_s } 
    mail to: 'postmaster', subject: 'mail should be attached' 
end 

그러나 이것은 유효한 전자 메일을 생성하지 않습니다. Thunderbird는 크기가 '0'인 첨부 파일을 나열합니다. Horde는 올바른 크기의 첨부 파일을 나열하지만이를 전자 메일로 인식하지 못합니다. 전자 메일 첨부 파일이 포함 된 전자 메일에

attachments['original-email.eml'] = original_email 
attachments['original-email.eml'] = { content: original_email.to_s } 
attachments['original-email.eml'] = { mime_type: 'message/rfc822', content: original_email.to_s } 

하지만, 이러한 결과 없음 :

나는 attachments 라인의 변화를 시도했습니다.

해결책은 무엇입니까?

답변

1

마지막으로 알아 냈습니다.

ActionMailer 메시지에합니다 ('메일'보석에서 메일 객체) 이메일을 첨부하려면, 당신은 너무 같은 MIME 유형 및 인코딩을 지정해야합니다

def attach_mail(original_email) 
    attachments['original-email.eml'] = { mime_type: 'message/rfc822', 
    encoding: '7bit', 
    content: original_email.to_s } 
    mail to: 'postmaster', subject: 'mail should be attached' 
end 

이 제대로 인 multipart/mixed 메시지를 생성 MUA에 표시됩니다.

하지만 인라인 첨부 파일을 추가하는 경우 (예 : ActionMailer 이메일 본문에 로고 이미지를 표시하는 경우) 전체 메시지의 MIME 유형은 multipart/related입니다. 시도한 MUA는 전자 메일 첨부 파일 multipart/related을 해석 할 수 없습니다.

따라서 전자 메일을 전자 메일에 첨부 할 때 인라인 첨부 파일을 추가하지 마십시오.

+0

여기에 문서를 제공해 주셔서 감사합니다. 왜 메일 메시지가 왜 왜곡되었습니다. – neongrau

+0

첨부 된 eml 파일이있는 html 본문 만 가지고있는 메일에 문제가 발생했습니다. 거기에서 첨부 파일이 배달시 전체 메일을 왜곡합니다. 이상하게도 Mail 객체를 인코딩 된 메소드를 통해 .eml 파일 자체로 변환하는 동안 작동하고있었습니다. 결국 mime_type : 'application/octet-stream'이라는 인코딩을 사용하여 eml-attachments를 보내고 있습니다. '7bit'는 다양한 형식에 가장 적합합니다. 적어도 하나 이상의 MUA에서 실패 할 다음 조합을 넘어서게됩니다. – neongrau