在日常工作中,我们经常需要收发邮件qq邮箱自动转发怎么关闭,不知大家可曾想过,如果能够实现自动发送,那岂不是爽歪歪~
就像跑图像检测的模型经常跑一两天,如果经常要主动去查看模型进度还是太麻烦了~如果能够实现自动邮件发送,等报表生成后、模型运行结束后或者遇到异常情况就能实现自动邮件通知,岂不是不要太方便?!
今天给大家分享一下如何使用Python实现自动发送邮件。
在实现自动化发送邮件前,先简单介绍一下需要使用到的两个模块:smtplib和email。
1. 链接邮箱服务器
在发送邮件前,需要先使用smtplib模块链接邮箱服务器,此处以连接腾讯企业邮箱为例qq邮箱自动转发怎么关闭,代码如下:
# 实例化SMTP
smtp = smtplib.SMTP()
# 链接邮件服务器
smtp.connect("smtp.exmail.qq.com")
# 配置发送邮箱的用户名和密码
smtp.login("huojc@create80.com", "123456")
2. 配置邮件信息
邮件服务器链接完成后,我们就可以配置发送邮件的信息了,其中包括邮件发送的内容、收件人和抄送人信息、附件内容。配置代码如下:
# 配置发送内容msg
msg = MIMEMultipart()
msg.attach(MIMEText("test11",_subtype='html',_charset='utf-8'))
msg['Subject'] = Header("testtitle",'utf-8')
msg['From'] = "huojc@create80.com"
# 添加发送人邮件信息(支持群发)
msg['To'] = ';'.join(["huojc@create80.com"])
# 添加抄送人邮件信息
msg['Cc'] = ';'.join(["huojc@create80.com"]) # 抄送邮箱
# 添加附件信息(可包含多个附件)
for a_path in ['D:/test1.txt','D:/test2.docx']:
name = os.path.basename(a_path) # 获取附件文件名
part = MIMEApplication(open(a_path,'rb').read())
part.add_header("Content-Disposition", "attachment", filename=("gbk", "", str(name))) # 可以显示附件的中文名字
msg.attach(part)
3. 发送邮件
完成了上面的操作后,就可以进行邮件的发送,在发送完邮件后,需要关闭邮件服务。
# 发送邮件
smtp.sendmail('huojc@create80.com','huojc@create80.com',msg.as_string())
# 关闭邮件服务
smtp.quit()
为了方便使用,将上面的代码封装成send_email函数
def send_email(SMTP_host, from_account, from_password, to_account, Cc_email,subject, content,attachment_path):
函数中的参数说明如下:
send_email代码如下:
import smtplib
import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header
def send_email(SMTP_host, from_account, from_password, to_account, Cc_email,subject, content,attachment_path):
# 实例化SMTP
smtp = smtplib.SMTP()
# 链接邮件服务器
smtp.connect(SMTP_host)
# 配置发送邮箱的用户名和密码
smtp.login(from_account, from_password)
# 配置发送内容msg
msg = MIMEMultipart()
msg.attach(MIMEText(content,_subtype='html', _charset='utf-8'))
msg['Subject'] = Header(subject,'utf-8')
msg['From'] = from_account
# 添加发送人邮件信息
msg['To'] = ';'.join(to_account) #群发邮件
# 添加抄送人邮件信息
msg['Cc'] = ';'.join(Cc_email) # 抄送邮箱
# 添加附件信息(包含多个附件)
for a_path in attachment_path:
name = os.path.basename(a_path) # 获取附件文件名
part = MIMEApplication(open(a_path,'rb').read())
part.add_header("Content-Disposition", "attachment", filename=("gbk", "", str(name))) # 可以显示附件的中文名字
msg.attach(part)
# 配置发送邮箱,接受邮箱,以及发送内容
smtp.sendmail(from_account, to_account, msg.as_string())
# 关闭邮件服务
smtp.quit()
封装好send_email函数后,我们就可以很方便的发送邮件了,下面以发送邮件到腾讯企业邮箱为例
if __name__ == '__main__':
my_email = 'huojc@create80.com' # 发送邮件的邮箱名
my_email_password = '123456' # 邮箱密码
to_email = ['huojc@create80.com'] # 接收者邮箱,可传入多个
Cc_email = [] # 抄送邮箱,可以传入多个
Email_title = '测试邮件-标题' # 设置发送邮件的标题
Email_content = '测试邮件-内容' # 设置发送邮件的内容
attachment_path = ['D:/邮件发送/p1.jpg','D:/邮件发送/test1.docx','D:/邮件发送/test2.xlsx'] # 附件的路径
# 使用前记得输入邮箱密码
send_email("smtp.exmail.qq.com", my_email, my_email_password, to_email, Cc_email, Email_title, Email_content, attachment_path)
代码运行成功后,发送结果如下所示:
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信: