繁体   English   中英

在 python 中使用 MIME 发送 email 时如何向 Thunderbird 发送附件?

[英]How to send Attachments to Thunderbird when sending email using MIME in python?

I am trying to send emails from Python using MIME, Emails are working fine as well as Attachments also displayed on web email, but doesn't appear in Email Client like Thunderbird.

这是我写的代码

#!/usr/bin/python
import smtplib
from smtplib import SMTPException
import base64

filename = "ticketexport.csv"

fo = open(filename, "rb")
filecontent = fo.read()
encodedcontent = base64.b64encode(filecontent) 

sender = 'erp@at.biz'
receivers = ["shravya@at.biz"]

marker = "AUNIQUEMARKER"

body ="""
LO CUSTOMER SUPPORT TICKETS.
"""

part1 = """From: AT <erp@atc.erp>
To: SS<shravya@at.biz>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=%s
--%s
""" % (marker, marker)


part2 = """Content-Type: text/plain
Content-Transfer-Encoding:8bit

%s
--%s
""" % (body,marker)

# Define the attachment section
part3 = """Content-Type: multipart/mixed; name=\"%s\"
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename=%s

%s
--%s--
""" %(filename, filename, encodedcontent, marker)
message = part1 + part2 + part3

try:
   smtpObj = smtplib.SMTP_SSL('smtp.gmail.com', 465)
   smtpObj.login('erp@at.biz', 'jklO4d')
   smtpObj.sendmail(sender, receivers, message)         
   print "Successfully sent email"
except SMTPException as e:
   print(e)
   print "Error: unable to send email"

任何帮助肯定意义重大。 我非常接近这一点。

关闭——MIME 编码规则非常挑剔。

part1中, Content-Type和第一个标记之间需要有一个空行。

part3中, Content-Type应该是application/octet-stream 该部分不是多部分的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM