2014-08-28 1 views
3

저는 Python을 사용하여 gmail 계정으로 전자 메일을 보내고 있습니다.Gmail은 전자 메일의 HTML과 텍스트 및 HTML 부분을 모두 표시합니다.

이 HTML

입니다이 텍스트

입니다 : I는 다음과 같이 표시되는 HTML 및 텍스트 버전을 모두 Gmail에서 이메일을 볼 때 이것은 내가
msg = email.mime.multipart.MIMEMultipart() 
msg['From'] = '[email protected]' 
msg['To'] = '[email protected]' 
msg['Subject'] = 'HTML test' 
msg_html = email.mime.text.MIMEText('<html><head></head><body><b>This is HTML</b></body></html>', 'html') 
msg_txt = email.mime.text.MIMEText('This is text','plain') 
msg.attach(msg_html) 
msg.attach(msg_txt) 
#SNIP SMTP connection code 
smtpConn.sendmail('[email protected]', '[email protected]', msg.as_string()) 

을 사용하고 코드입니다

텍스트 또는 HTML을 표시해야하며,이 동작의 원인은 무엇입니까?

+0

메일 링하고있는 콘텐츠를보세요. 이것은 Gmail이 렌더링되는 방식이 아닌 보내는 메일에 대한 문제입니다. – ControlAltDel

답변

7

multipart/alternative으로 보낼 때 메시지를 multipart/mixed (this is the default)으로 보내고 있습니다. mixed은 각 부분이 다른 내용을 포함하고 모두가 표시되어야 함을 의미하는 반면, alternative은 모든 부분이 다른 형식으로 동일한 내용을 가지며 하나만 표시되어야 함을 의미합니다.

msg = email.mime.multipart.MIMEMultipart("alternative") 

또한, HTML의 앞부분에 텍스트를 추가하는 것이 좋습니다. MUA (이 경우 Gmail)은 표시 방법을 아는 마지막 부분을 렌더링합니다.

MIME 메시지 서식 지정에 대한 유용한 정보는 Wikipedia article on MIME을 참조하십시오.