简单了解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实现端口复用实例代码
Jul 03 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
Python基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
python通过cython加密代码
Dec 11 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
Python Django 后台管理之后台模型属性详解
Apr 25 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 SDK之微信公众号支付代码详解
2015/12/09 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
JSONP基础知识详解
2017/03/19 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
解决python报错MemoryError的问题
2018/06/26 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
django的ORM模型的实现原理
2019/03/04 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
python中最小二乘法详细讲解
2021/02/19 Python
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
百度软件工程师职位
2013/02/14 面试题
实习指导老师评语
2014/04/26 职场文书
家长学校工作方案
2014/05/07 职场文书
跳槽求职信范文
2014/05/26 职场文书
党校培训学习心得体会
2016/01/06 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python