2016-12-22 18 views
0

私はPythonを使用してメールを自動化していますが、うまくいきます。この問題は、電子メール本文にhtmlを追加しようとすると発生します。 HTMLコードは、本文に埋め込むのではなく、Outlookメールの添付ファイルとして追加されます。どのように私はこれを克服するのですか?Pythonを使用して電子メール本文にHTMLを添付するには

from email.mime.text import MIMEText 
from email.mime.application import MIMEApplication 
from email.mime.multipart import MIMEMultipart 
from smtplib import SMTP 
import smtplib 
import sys 


recipients = ['[email protected]','[email protected]'] 
emaillist = [elem.strip().split(',') for elem in recipients] 
msg = MIMEMultipart() 
msg['Subject'] = str("Trial") 
msg['From'] = '[email protected]' 

msg.preamble = 'Multipart massage.\n' 

html="""<html><body><p>Hi!</p> 
<a href="www.google.com">Google</a> 
</body></html>""" 

part2=MIMEText(html,'html') 

part = MIMEText("Hello") 

msg.attach(part) 
msg.attach(part2) 

for excel_file_location in sys.argv[1].split(","): 
    part = MIMEApplication(open(str(excel_file_location),"rb").read()) 
    part.add_header('Content-Disposition', 'attachment', filename=str(excel_file_location.split("\\")[-1])) 
    msg.attach(part) 


server = smtplib.SMTP("smtp.office365.com",587) 
server.ehlo() 
server.starttls() 
server.login("[email protected]", "asdgfasgas") 

server.sendmail(msg['From'], emaillist , msg.as_string()) 
+0

何があなたのコードが間違っていないようです、あなたは、例えば、Gmailの、見通しとは異なる何かに電子メールを閲覧しようとしましたか? Outlookでの問題ではないことを確認するには –

+0

Outlook Webサイトからチェックしても同じ方法で動作します。そして、私は私の会社の中で、この見通しだけでこのメールを受け取る全ての人の中でこれについて取り組んでいるからです。 –

+0

まず、問題がOutlookまたはコードから発生したものかどうかを理解することで、デバッグ作業を正しい方向に向けることができます。 Gmailに送信し、それが持続するかどうかを伝えてください。 –

答えて

1

メッセージのタイプはmultipart/alternativeである必要があります。デフォルトのmultipartサブタイプは "mixed"です。これを試してみてください :

msg = MIMEMultipart("alternative") 
+0

ありがとうございます。それはうまく動作します。 –

関連する問題