Python用一个附件发送电子邮件

2024-07-03 07:13:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个大项目,其中包括一个记忆用户的数据库。我跳过细节,但我的客户希望我包含一个函数,他可以备份所有的用户数据和其他文件。在

我在想一封电子邮件,(因为这个项目是一个android应用程序),我想知道如何在电子邮件中发送附件(即.db sqlite3文件)。我知道在here上有很多类似的问题,但是this问题的所有答案都给了我一个错误。这是我最近得到的:

此程序发送不带附件的电子邮件:

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

boodskap = MIMEText("Toekomsweb Epos toets", 'plain')

van_adres = "from adres"

na_adres = "to adres"

epos_liggaam = MIMEMultipart('alternatief')

epos_liggaam['Subject'] = "Toets"

epos_liggaam['From'] = van_adres

epos_liggaam['To'] = na_adres

epos_liggaam.attach(boodskap)

mail = smtplib.SMTP('smtp.gmail.com',587)

mail.ehlo()

mail.starttls()

mail.login(van_adres,'PASSWORD')

mail.sendmail(van_adres,na_adres,epos_liggaam.as_string())

mail.close()
print("succes!")

请原谅我糟糕的变量命名,它不是用英语。在

有什么关于发送附件的帮助吗?在

谢谢!在


Tags: 文件项目用户fromimport附件电子邮件email
1条回答
网友
1楼 · 发布于 2024-07-03 07:13:44

嗨,这是我用的密码。。。结果发现,ubunto使用了与windows不同的发送电子邮件的方式。在

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.base import MIMEBase

from email import encoders

import os

boodskap = MIMEText("Toekomsweb Epos toets", 'plain')

van_adres = 'From adres'

na_adres = 'To adres'

epos_liggaam = MIMEMultipart('alternatief')

epos_liggaam['Subject'] = "Toets"

epos_liggaam['From'] = van_adres

epos_liggaam['To'] = na_adres

epos_liggaam.attach(boodskap)

f = "toets.db"
part = MIMEBase('application', "octet-stream")
part.set_payload( open(f,"rb").read() )
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="{0}"'.format(os.path.basename(f)))
epos_liggaam.attach(part)

mail = smtplib.SMTP('smtp.gmail.com',587)

mail.ehlo()

mail.starttls()

mail.login(van_adres,'PASSWORD')

mail.sendmail(van_adres,na_adres,epos_liggaam.as_string())

mail.close()
print("succes!")

这个答案改编自here(第二个答案)

希望这个答案也能回答别人的问题

相关问题 更多 >