简单了解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 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
Python验证码识别的方法
Jul 10 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
Mar 08 Python
关于python的缩进规则的知识点详解
Jun 22 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自定义hash函数实例
2015/05/05 PHP
PHP引用的调用方法分析
2016/04/25 PHP
javascript来定义类的规范小结
2010/11/19 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
AngularJS语法详解
2015/01/23 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
python开头的coding设置方法
2019/08/08 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
sealed修饰符是干什么的
2012/10/23 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
优秀民警事迹材料
2014/01/29 职场文书
学校教师读书活动总结
2014/07/08 职场文书
岗位说明书标准范本
2014/07/30 职场文书
2014年环保局工作总结
2014/12/11 职场文书
义诊活动通知
2015/04/24 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python