在Python中使用MIMEText发送带有附件的HTML格式电子邮件
发布时间:2024-01-01 06:53:51
要在Python中发送带有附件的HTML格式电子邮件,可以使用Python的smtplib和email库。smtplib库用于连接并发送电子邮件,而email库用于构建电子邮件的各个部分。
首先,我们需要导入所需的库:
import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders
然后,我们需要创建一个MIMEMultipart对象,该对象将作为电子邮件的容器:
msg = MIMEMultipart()
接下来,我们需要设置电子邮件的发送者、接收者、主题等信息:
msg['From'] = 'your_email@gmail.com' msg['To'] = 'recipient_email@example.com' msg['Subject'] = 'Subject of the Email'
然后,我们需要读取HTML文件,并将其添加到MIMEText对象中:
with open('path_to_html_file.html', 'r') as f:
html_content = f.read()
html_part = MIMEText(html_content, 'html')
msg.attach(html_part)
接下来,我们需要设置附件信息。首先,我们需要读取要附加的文件,并将其添加到MIMEBase对象中:
attachment = open('path_to_attachment_file', 'rb')
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
然后,我们需要设置附件的名称,并将附件添加到MIMEMultipart对象中:
part.add_header('Content-Disposition', "attachment; filename= %s" % 'attachment_file_name')
msg.attach(part)
接下来,我们需要连接到邮件服务器并登录:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('your_email@gmail.com', 'your_password')
最后,我们需要发送电子邮件:
server.sendmail('your_email@gmail.com', 'recipient_email@example.com', msg.as_string())
server.quit()
下面是完整的示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
msg = MIMEMultipart()
msg['From'] = 'your_email@gmail.com'
msg['To'] = 'recipient_email@example.com'
msg['Subject'] = 'Subject of the Email'
with open('path_to_html_file.html', 'r') as f:
html_content = f.read()
html_part = MIMEText(html_content, 'html')
msg.attach(html_part)
attachment = open('path_to_attachment_file', 'rb')
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % 'attachment_file_name')
msg.attach(part)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('your_email@gmail.com', 'your_password')
server.sendmail('your_email@gmail.com', 'recipient_email@example.com', msg.as_string())
server.quit()
请注意,这只是一个基本示例,你需要根据自己的实际情况进行适当的更改。记得用你自己的电子邮件和密码替换相应的字段。
