簡體   English   中英

附件在python中使用smptplib連接兩次

[英]Attachments getting attached twice using smptplib in python

我試圖在python中實現一個功能,我想發送一個文件作為電子郵件提醒的附件一切正常。 我收到了所需主題的電子郵件提醒,但唯一的問題是我在電子郵件提醒中兩次獲得相同的附件。

    fileMsg = email.mime.base.MIMEBase('application','octet-stream')
    fileMsg.set_payload(file('/home/bsingh/python_files/file_dict.txt').read())
    #email.encoders.encode_base64(fileMsg)
    fileMsg.add_header('Content-Disposition','attachment;filename=LogFile.txt')
    emailMsg.attach(fileMsg)

  # send email
    server = smtplib.SMTP(smtp_server)
    server.starttls()
    server.login(username, password)
    server.sendmail(from_add, to_addr,emailMsg.as_string())
    server.quit()

我自己一直遇到這個問題。 我有'alternative'作為我的消息的MIMEMultipart類型。 當我更改為默認值'mixed' ,副本消失了。

因此,如果您使用MIMEMultipart('alternative')創建了emailMsg ,則可能會遇到同樣的問題。

我相信'alternative'是提供郵件正文的文本和HTML版本,所以我認為如果你使用它,除了你的附件之外你還需要提供它們。

我希望有所幫助。

我還沒有找到任何好的解釋; 電子郵件可能變得非常復雜

yagmail (我是開發人員)的全部目的是讓發送電子郵件變得非常容易,尤其是HTML或附件需求。

請嘗試以下代碼:

import yagmail
yag = yagmail.SMTP(from_add, password)
contents = ['See my attachment below', '/home/bsingh/python_files/file_dict.txt']
yag.send(contents = contents)

請注意這里的魔力: contents是一個列表,其中將自動加載等於文件路徑的項目,mimetype猜測和附加。

還有更多的魔法,例如易於嵌入圖像,無密碼腳本,無用戶名腳本,簡單別名,智能默認值(注意我省略了tosubject參數?)等等。 我建議/鼓勵你閱讀它的github頁面:-)。 隨意提出問題或添加功能請求!

您可以使用pip來安裝yagmail:

pip install yagmail # Python 2
pip3 install yagmail # Python 3

該版本存在問題。已經解決了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM