简单了解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中精确输出JSON浮点数的方法
Apr 18 Python
Python中datetime常用时间处理方法
Jun 15 Python
python实现按长宽比缩放图片
Jun 07 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
python2.7和NLTK安装详细教程
Sep 19 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
Python实现计算对象的内存大小示例
Jul 10 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
如何基于python实现不邻接植花
May 01 Python
Python如何操作docker redis过程解析
Aug 10 Python
python某漫画app逆向
Mar 31 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执行速率优化技巧小结
2008/03/15 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
JS中操作JSON总结
2020/12/06 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
python爬取网站数据保存使用的方法
2013/11/20 Python
Python进程间通信用法实例
2015/06/04 Python
vscode 远程调试python的方法
2017/12/01 Python
Python如何发布程序的详细教程
2018/10/09 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
创先争优公开承诺书
2014/08/30 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python