Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用MIME发送电子邮件时,如何向Thunderbird发送附件?_Python_Mime Types_Sendmail_Smtplib - Fatal编程技术网

在python中使用MIME发送电子邮件时,如何向Thunderbird发送附件?

在python中使用MIME发送电子邮件时,如何向Thunderbird发送附件?,python,mime-types,sendmail,smtplib,Python,Mime Types,Sendmail,Smtplib,我正在尝试使用MIME从Python发送电子邮件,电子邮件工作正常,附件也显示在web电子邮件上,但不会像Thunderbird那样出现在电子邮件客户端中 这是我写的代码 #!/usr/bin/python import smtplib from smtplib import SMTPException import base64 filename = "ticketexport.csv" fo = open(filename, "rb") filec

我正在尝试使用MIME从Python发送电子邮件,电子邮件工作正常,附件也显示在web电子邮件上,但不会像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"
#/usr/bin/python
导入smtplib
从smtplib导入SMTPException
导入base64
filename=“ticketxport.csv”
fo=打开(文件名为“rb”)
filecontent=fo.read()
encodedcontent=base64.b64encode(文件内容)
发送者erp@at.biz'
接收者=[”shravya@at.biz"]
marker=“AUNIQUEMARKER”
body=”“”
LO客户支持票。
"""
part1=“”发件人:在
致:SS
MIME版本:1.0
内容类型:多部分/混合;边界=%s
--%
“”“%(标记,标记)
part2=“”内容类型:文本/普通
内容传输编码:8比特
%
--%
“”“%(正文,标记)
#定义附件部分
part3=“”内容类型:多部分/混合;名称=\%s\”
内容传输编码:base64
内容处置:附件;文件名=%s
%
--%--
“”%(文件名、文件名、编码内容、标记)
消息=第1部分+第2部分+第3部分
尝试:
smtpObj=smtplib.SMTP_SSL('SMTP.gmail.com',465)
smtpObj.login('erp@at.biz','jklO4d')
smtpObj.sendmail(发送者、接收者、消息)
打印“已成功发送电子邮件”
SMTPE除外:
打印(e)
打印“错误:无法发送电子邮件”
任何帮助都是非常重要的。我非常接近这一点。

接近——MIME编码规则非常挑剔


第1部分
中,
内容类型
和第一个标记之间需要有一个空行


part3
中,
内容类型应为
application/octet-stream
。该部分不是多部分的。

Close——MIME编码规则非常挑剔


第1部分
中,
内容类型
和第一个标记之间需要有一个空行


part3
中,
内容类型应为
application/octet-stream
。该部分不是多部分。

第1部分中,
内容类型
和第一个标记之间需要有一条空行。在
第3部分中,
内容类型
应该是
应用程序/八位字节流
。那部分不是多部分的。蒂姆·罗伯茨,你的答案真的很有帮助,你能把它作为一个答案来评论吗?为了便于我在
第1部分
中投票,在
内容类型
和第一个标记之间需要有一条空行。在
第3部分
中,
内容类型
应该是
应用程序/八位字节流
。那部分不是多部分的。蒂姆·罗伯茨,你的答案真的很有帮助,你能把它作为一个答案来评论吗?这样我就可以投票了