简单了解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用GET方法上传文件
Mar 10 Python
Python实现登录接口的示例代码
Jul 21 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
浅析Python迭代器的高级用法
Jul 16 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
python装饰器代码解析
Mar 23 Python
4种方法python批量修改替换列表中元素
Apr 07 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
用session做客户验证时的注意事项
2006/10/09 PHP
php执行sql语句的写法
2009/03/10 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
jquery禁用右键示例
2014/04/28 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
python简单程序读取串口信息的方法
2015/03/13 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
三好学生自我鉴定
2013/12/17 职场文书
安全演讲稿大全
2014/05/09 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
从原生JavaScript到React深入理解
2022/07/23 Javascript