简单了解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基础教程之常用运算符
Aug 29 Python
Python的pycurl包用法简介
Nov 13 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
python 日志增量抓取实现方法
Apr 28 Python
Linux下多个Python版本安装教程
Aug 15 Python
python求质数的3种方法
Sep 28 Python
python文件写入write()的操作
May 14 Python
tensorflow 限制显存大小的实现
Feb 03 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
Python中rapidjson参数校验实现
Jul 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图片上传类带图片显示
2006/11/25 PHP
php防注
2007/01/15 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
微信小程序提交form操作示例
2018/12/30 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
python中关于日期时间处理的问答集锦
2013/03/08 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python调用java的jar包方法
2018/12/15 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
法律专业个人实习自我鉴定
2013/09/23 职场文书
质检部部长职责
2013/12/16 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
2019银行竞聘书
2019/06/21 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
Python中常见的导入方式总结
2021/05/06 Python