首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 邮件发送实战:自动发送邮件,代码详解与应用

代码分析与解释

代码是一个 Python 脚本,用于通过 SMTP 协议发送带有附件的邮件。该脚本定义了一个名为 send_email 的函数,该函数接受接收者的电子邮件地址以及可选的两个文件路径作为附件。以下是该脚本的主要步骤和组件:

导入必要的库和模块,如 smtplib 和 email 模块的多个类。

定义 send_email 函数,该函数接受接收者的电子邮件地址和两个可选的文件路径作为参数。

在 send_email 函数中,配置发送者的电子邮件地址和密码,设置邮件的主题和内容。

创建一个 MIMEMultipart 对象以构建邮件,并设置邮件的 From,To 和 Subject 头。

将邮件的正文添加到 MIMEMultipart 对象中。

如果提供了文件路径,则将文件作为附件添加到邮件中。

通过 SMTP 服务器登录并发送邮件。

在脚本的末尾,调用 send_email 函数以发送邮件。

代码块

import?smtplib from?email.mime.text?import?MIMEText from?email.mime.multipart?import?MIMEMultipart from?email.mime.base?import?MIMEBase from?email?import?encoders from?email.header?import?Header def?send_email(receiver,?file_path1=None,?file_path2=None): ????#?邮件发送方的信息 ????sender?=?'sanrenjz@163.com' ????password?=?'AU46546412MN' ????#?邮件主题和内容 ????subject?=?'Python自动发送邮件' ????content?=?'这是一封Python自动发送的邮件' ????#?创建邮件对象 ????message?=?MIMEMultipart() ????message['From']?=?Header(sender,?'utf-8') ????message['To']?=?Header(receiver,?'utf-8') ????message['Subject']?=?Header(subject,?'utf-8') ????#?添加邮件正文 ????message.attach(MIMEText(content,?'plain',?'utf-8')) ????#?添加附件1 ????if?file_path1?is?not?None: ????????with?open(file_path1,?'rb')?as?f: ????????????attachment?=?MIMEBase('application',?'octet-stream') ????????????attachment.set_payload(f.read()) ????????????encoders.encode_base64(attachment) ????????????attachment.add_header('Content-Disposition',?'attachment',?filename=('utf-8',?'',?file_path1.split('\\')[-1])) ????????????message.attach(attachment) ????#?添加附件2 ????if?file_path2?is?not?None: ????????with?open(file_path2,?'rb')?as?f: ????????????attachment?=?MIMEBase('application',?'octet-stream') ????????????attachment.set_payload(f.read()) ????????????encoders.encode_base64(attachment) ????????????attachment.add_header('Content-Disposition',?'attachment',?filename=('utf-8',?'',?file_path2.split('\\')[-1])) ????????????message.attach(attachment) ????#?发送邮件 ????try: ????????smtp_obj?=?smtplib.SMTP('smtp.163.com',?25) ????????smtp_obj.login(sender,?password) ????????smtp_obj.sendmail(sender,?receiver,?message.as_string()) ????????print('邮件发送成功') ????except?smtplib.SMTPException?as?e: ????????print('邮件发送失败:',?e) #?调用函数发送邮件 send_email('yuhadkkak@yeah.net',?'全新策略.xlsx',?"美股.xlsx")

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OsmoemZdLRYPhIx-HoVOPhLQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com