2013-04-02 2 views
2

안녕하세요 난 그냥 GAE에서 이메일을 보낼 smtplib를 사용할 수 있다는 것을 발견했습니다,하지만 난 같이 정의 마임 유형을 지정해야합니다보내기 정의 마임 유형 구글 앱 엔진 이메일

part = MIMEBase('application', "vnd.openxmlformats-officedocument.wordprocessingml.document") 
part.set_payload(doc) 
Encoders.encode_base64(part) 
part.add_header('Content-Disposition', 'attachment; filename="%s"' % "ackReceived.docx") 
msg.attach(part) 

문서화 된 방식으로 API를 사용하려고하면 첨부 파일이 'application/msword'와 함께 전송되어 내 docx가 손상됩니다.

마임 유형을 Google의 메일 API를 사용하여 수동으로 지정할 수 있습니까?

편집 : 내가 내 DOCX는 메일 API에 의해 전송 될 때 직면하는 문제에 대한 조금 더 :

Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document 
MIME-Version: 1.0 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="ackReceived.docx" 

UEsDBBQABgAIAAAAIQCCVgdJnwEAAMgIAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbMWWS0/DMBCE 
70j8h8hXlLhwQAg17YHHEZAo4mzsTWMRP2Qvj/571k1bIaiaiDbiEilZz3wzsSJnPP00TfYOIWpn 
S3ZajFgGVjql7bxkT7Pb/IJlEYVVonEWSraAyKaT46PxbOEhZqS2sWQ1or/kPMoajIiF82BpUrlg... 

Google 메일 API를 같은 파일을 전송합니다

smtplib는 다음과 같이 첨부 파일이 전송 다음과 같이하십시오 :

Content-Type: application/msword 
MIME-Version: 1.0 
Content-Disposition: attachment; filename="ackReceived.docx" 

PK�����!�‚VIŸ��È�����[Content_Types].xmlÅ–KOÃ0„ïHü‡ÈW”¸[email protected]íÇ(âlìMc?d/þ{ÖM[!¨šˆ6â)YÏ|3±"g<ý4Mö!jgKvZŒXV:¥í¼dO³Ûü‚e…U¢qJ¶€È¦“ã£ñlá!f¤¶±d5¢¿ä<ÊŒˆ…ó`iR¹`Òm˜s/䫘?ιtÁbŽÉƒMÆ×P‰·³›OzÜ&!9Ë®Úu U2á}£¥@ó4å[uÞÎè´IÜô|»"@w Þ­úÑ'_u)H¹\kíãÉ*Ó=½Ì d"à0dÇ?\P\9ùfQ쮶…çªJKØè“›NBŒ´K¦)6#´íÌqÑ@<|ŠÖ·'þYc}SU ±Oó¤-~i»i€Hñ†¨»rîŒð/ƒ¥øfÞ¤r­Ã!ö~cݬ(ÃÚ¹3B 
BA8=|‚Ö¸'ÿìßøi³éß÷äп7Ÿxâ¥!¬¬;C ”Ð^÷߉¥Í.$­|ÎG:yÃj¯¼¤Î©°‡€z÷—¶!’õÞý Ö... 

답변

1

즉, Google AppEngine 이메일을 사용하여 맞춤형 MIME 유형을 지정할 수 없습니다.

Google AppEngine을 통해 Google을 통해 이메일을 보내려면 제공된 Mail API를 사용해야합니다. .docx가 콘텐츠 유형 application/msword (여기에서 https://cloud.google.com/appengine/docs/standard/python/mail/mail-with-headers-attachments)을 사용하는 이유를 확인할 수 있습니다. 이 문제를 해결하려면 문제 추적기에 문제를 제출해야 할 수 있습니다.

Amazon's SES 또는 SendGrid과 같은 타사 전자 메일 제공 업체를 살펴 보는 것이 좋습니다. 개인적으로 Amazon의 SES를 사용하여 GAE의 Mail API에서 기능 및 제한 사항이 부족합니다 (Google은이 API를 지속적으로 개선하고 있음).

boto library을 사용하면 AWS SES와 통신하고 RAW e-mail messages을 전송할 수 있습니다. (전자 메일 작성 방법에 대한 예제는 this question을 참조하십시오. 약간의 수정이 필요할 수 있습니다.)

+0

프로젝트에 추가 라이브러리/서비스를 포함해야한다는 점에 다소 실망하지만 말을해야합니다. 그것은 당신이 묘사 한 것처럼 오히려 잘 작동합니다. 도와 주셔서 감사합니다! – Awalias

+0

도와 주시겠습니까? 어떤 서비스를 사용 했습니까? – someone1

+0

SES에서 원시 이메일을 보내려면 boto와 함께 – Awalias