简单了解python 邮件模块的使用方法


Posted in Python onJuly 24, 2019

我们在开发程序的时候,有时候需要开发一些自动化的任务,执行完之后,将结果自动的发送一份邮件,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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过函数属性实现全局变量的方法
May 16 Python
python集合用法实例分析
May 30 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
python机器学习之决策树分类详解
Dec 20 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
python简单的三元一次方程求解实例
Apr 02 Python
python中shell执行知识点
May 06 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
Python数据处理的三个实用技巧分享
Apr 01 Python
python 根据字典的键值进行排序的方法
Jul 24 #Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 #Python
Python定时任务工具之APScheduler使用方式
Jul 24 #Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 #Python
Django的用户模块与权限系统的示例代码
Jul 24 #Python
python3字符串操作总结
Jul 24 #Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 #Python
You might like
php,ajax实现分页
2008/03/27 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
js数组操作常用方法
2014/05/08 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
JavaScript中如何调用Java方法
2020/09/16 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Python偏函数实现原理及应用
2020/11/20 Python
应聘编辑职位自荐信范文
2014/01/05 职场文书
个性与发展自我评价
2015/03/06 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
浅谈Python协程asyncio
2021/06/20 Python
关于python类SortedList详解
2021/09/04 Python