简单了解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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
python框架django基础指南
Sep 08 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
python中的二维列表实例详解
Jun 19 Python
Python解析Excle文件中的数据方法
Oct 23 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
wxpython绘制圆角窗体
Nov 18 Python
python实现飞船游戏的纵向移动
Apr 24 Python
python设置表格边框的具体方法
Jul 17 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
python实现马丁策略的实例详解
Jan 15 Python
Django程序的优化技巧
Apr 29 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 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP修改session_id示例代码
2014/01/08 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
Python中安装easy_install的方法
2018/11/18 Python
python获取本机所有IP地址的方法
2018/12/26 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
Python实现微信表情包炸群功能
2021/01/28 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物