简单了解python 邮件模块的使用方法
作者:可可的私房菜 时间:2021-07-11 00:08:14
我们在开发程序的时候,有时候需要开发一些自动化的任务,执行完之后,将结果自动的发送一份邮件,python发送邮件使用smtplib模块,是一个标准包,直接import导入使用即可,代码如下:
import smtplib
from email.mime.text import MIMEText
email_host = 'smtp.163.com' #邮箱地址
email_user = 'xxxx@163.com' # 发送者账号
email_pwd = 'xxxx' # 发送者密码
maillist ='511402865@qq.com'
#收件人邮箱,多个账号的话,用逗号隔开
me = email_user
msg = MIMEText('邮件发送测试内容') # 邮件内容
msg['Subject'] = '邮件测试主题' # 邮件主题
msg['From'] = me # 发送者账号
msg['To'] = maillist # 接收者账号列表
smtp = smtplib.SMTP(email_host,port=25) # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25
smtp.login(email_user, email_pwd) # 发送者的邮箱账号,密码
smtp.sendmail(me, maillist, msg.as_string())
# 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串
smtp.quit() # 发送完毕后退出smtp
print ('email send success.')
下面是发送带附件的邮件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
username='xxx@xx.com'
email_host = 'smtp.163.com'
passwd='123456'
recv=['511402865@qq.com',]
title='邮件标题'
content='发送邮件测试'
msg = MIMEMultipart()
file='a.txt'
att = MIMEText(open(file,encoding='utf-8').read())
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="%s"'%file
msg.attach(att)
msg.attach(MIMEText(content))#邮件正文的内容
msg['Subject'] = title # 邮件主题
msg['From'] = username # 发送者账号
msg['To'] = recv # 接收者账号列表
#smtp = smtplib.SMTP_SSL(eail_host,port=456)#qq邮箱
smtp = smtplib.SMTP_SSL(eail_host,port=25)#其他邮箱
smtp.login(username,passwd)
smtp.sendmail(username,recv,msg.as_string())
smtp.quit()
当然,我们可以封装成一个函数,使用的时候,直接调用函数,传入邮箱账号密码,收件人,发件人,标题和内容即可。
import smtplib
from email.mime.text import MIMEText
def send_mail(username,passwd,recv,title,content,mail_host='smtp.163.com',port=25):
'''
发送邮件函数,默认使用163smtp
:param username: 邮箱账号 xx@163.com
:param passwd: 邮箱密码
:param recv: 邮箱接收人地址,多个账号以逗号隔开
:param title: 邮件标题
:param content: 邮件内容
:param mail_host: 邮箱服务器
:param port: 端口号
:return:
'''
msg = MIMEText(content) # 邮件内容
msg['Subject'] = title # 邮件主题
msg['From'] = username # 发送者账号
msg['To'] = recv # 接收者账号列表
smtp = smtplib.SMTP(mail_host,port=port) # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25
smtp.login(username, passwd) # 发送者的邮箱账号,密码
smtp.sendmail(username, recv, msg.as_string())
# 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串
smtp.quit() # 发送完毕后退出smtp
print ('email send success.')
email_user = 'xxxx@163.com' # 发送者账号
email_pwd = 'xxxxx' # 发送者密码
maillist ='511402865@qq.com'
title = '测试邮件标题'
content = '这里是邮件内容'
send_mail(email_user,email_pwd,maillist,title,content)
来源:https://www.cnblogs.com/SuKiWX/p/8966154.html
标签:python,邮件模块
0
投稿
猜你喜欢
正则表达式的基本概念
2007-10-17 21:07:00
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2023-09-07 22:44:41
SQL Server中导入导出数据的三种方式
2008-11-28 15:53:00
PHP中SimpleXML函数用法分析
2023-06-23 11:52:09
数据库理论:学习基于SQL数据库的算法
2009-01-13 13:38:00
Asp无组件生成缩略图
2007-10-26 12:08:00
python自制简易mysql连接池的实现示例
2023-04-14 20:23:55
网站通过W3C标准注意点
2010-01-14 20:15:00
Mysql入门系列:MySQL数据目录的位置
2008-11-24 12:59:00
SQL Server中链接服务器将替代远程服务器
2009-06-15 11:03:00
巧用weui.topTips验证数据的实例
2023-08-12 03:00:51
Go语言题解LeetCode35搜索插入位置示例详解
2023-07-16 17:17:00
PHP 引用的概念
2023-11-14 21:24:28
Django解决frame拒绝问题的方法
2023-04-13 22:00:06
go slice 数组和切片使用区别示例解析
2023-06-22 04:07:16
python 将对象设置为可迭代的两种实现方法
2023-08-24 18:01:39
如何在SQL Server中由原子建立分子查询
2009-01-20 16:01:00
JavaScript中的this/call/apply/bind的使用及区别
2023-09-15 06:23:19
python DataFrame数据格式化(设置小数位数,百分比,千分位分隔符)
2021-02-03 21:34:10
Sun拟10亿美元收购MySQL
2008-01-17 11:56:00