【python】python 自动发邮件
一、一般发邮件的方法
Python对SMTP支持有smtplib和email
两个模块,email
负责构造邮件,smtplib
负责发送邮件。
注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,最终的MIME就是‘text/plain’,最后一定要用utf-8编码保证多语言兼容性。
然后,通过SMTP发出去:
# coding:utf-8
import smtplib
from email.mime.text import MIMEText class SendMail: def send_mail(self, receiver_list, sub, content):
host = "smtp.qq.com" # 服务器地址
sender = "123@qq.com" # 发件地址
password = "pwd"
#邮件内容
message = MIMEText(content, _subtype='plain', _charset='utf-8')
message['Subject'] = sub # 邮件主题
message['From'] = sender
message['To'] = ";".join(receiver_list) # 收件人之间以;分割
server = smtplib.SMTP()
# 连接服务器
server.connect(host=host)
# 登录
server.login(user=sender, password=password)
server.sendmail(from_addr=sender, to_addrs=receiver_list, msg=message.as_string())
server.close() if __name__ == '__main__':
send = SendMail()
receive = ["123qq.com", "456@163.com"]
sub = "测试邮件"
content = "测试邮件"
send.send_mail(receive, sub, content)
其实,这段代码也并不复杂,只要你理解使用过邮箱发送邮件,那么以下问题是你必须要考虑的:
- 你登录的邮箱帐号/密码
- 对方的邮箱帐号
- 邮件内容(标题,正文,附件)
- 邮箱服务器(SMTP.xxx.com/pop3.xxx.com)
二、利用yagmail库发送邮件
yagmail 可以更简单的来实现自动发邮件功能。
首先需要安装库: pip install yagmail
然后:
import yagmail class SendMail: def send_mail(self, receiver_list, sub, content, attach=None):
host = "smtp.qq.com"
sender = "983@qq.com"
password = "ryg"
# 连接服务器
yag = yagmail.SMTP(user=sender, password=password, host=host)
# 邮件内容
yag.send(to=receiver_list, subject=sub, contents=content, attachments=attach) if __name__ == '__main__':
send = SendMail()
receive = ["983@qq.com", "513@163.com"]
sub = "测试邮件"
content = ["yagmail测试邮件", "\n", "hello word"]
attch = "C:\\Users\\Administrator\\Desktop\\10.jpg"
send.send_mail(receive, sub, conten8t, attch)
另外,附件也可以之间写在content中,即conten = ["yagmail测试邮件", "\n", "hello word", "C:\\Users\\Administrator\\Desktop\\10.jpg"]
少写了好几行代码
【python】python 自动发邮件的更多相关文章
- python连接数据库自动发邮件
python连接数据库实现自动发邮件 1.运行环境 redhat6 + python3.6 + crontab + Oracle客户端 2.用到的模块 3.操作步骤 (1)安装python3.6参考 ...
- python实现自动发邮件
Python有两个内置库:smtplib和email,可以实现邮件功能,无需下载,直接import导入. smtplib库负责发送邮件 Email库负责构造邮件格式和内容 邮件发送需要遵守SMTP协议 ...
- python自动发邮件库yagmail
#### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...
- python自动发邮件库yagmail(转)
一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email ...
- Selenium 2自动化测试实战37(自动发邮件功能)
自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...
- PHP自动发邮件
自动发邮件 使用了这个类http://bbs.php100.com/read-htm-tid-121431.html 因他用的php版本较老,用到了函数ereg_replace() 和 ereg() ...
- java windows自动化-mail自动发邮件
本文旨在让测试人员了解如何发邮件 发邮件的话,最简单的事是直接手动发邮件,但是在自动化测试中,应做到让机器或者代码来自动发送邮件,笔者大概了解以下几种方法,总有一款口味适合你:1java代码来做下面即 ...
- jira6.3.6创建问题不自动发邮件通知的问题
装完jira6.3.6后,设置好邮件服务器,测试没有问题.但是创建问题不自动发邮件提示用户.折腾了大半天,请教了一位大神,终于搞定.步骤是: agile->系统->用户界面->用户缺 ...
- redmine创建新闻,自动发邮件给项目组所有成员
redmine创建新闻,自动发邮件给项目组所有成员: 1.添加用户至公共项目内 2.配置系统邮件推送配置 3.检查用户接受推送配置 3.使用管理员账户发布新闻(不能自己发送自己) 4.查看邮件接受邮件
随机推荐
- CentOS7下搭建zabbix监控(五)——Web端配置自动发现并注册
好像有点问题,没法自动添加主机,我后期再测测 (1).自动发现主机并注册 1)创建发现规则 2)编辑自动发现规则信息(这两步不配置问题也不大,因为在动作中也有主机IP地址) 3)添加自动发现的动作 4 ...
- UIScrollView实现自动循环滚动广告
实现效果如下: 功能说明: 程序运行,图片自动循环播放,采用定时器实现; 当用户用手势触摸滑动时,定时器的自动播放取消,停止触摸时,自动无限播放; 代码如下 : 采用封装视图,外部进行调用即可: 1. ...
- Zabbix设置触发器调用远程主机脚本实现触发告警后自动启动自愈功能
参考:https://www.cnblogs.com/xiami-xm/p/8929163.html 当zabbix添加触发器后触发告警后可以设置发送邮件及短信告警,但是恢复故障需要运维人员收到告警以 ...
- leetcode1186 Maximum Subarray Sum with One Deletion
思路: 最大子段和的变体,前后两个方向分别扫一遍即可. 实现: class Solution { public: int maximumSum(vector<int>& arr) ...
- 常见问题:计算机网络/运输层/TCP
TCP 面向连接,全双工,点对点. TCP头格式 TCP包没有IP地址,IP地址在网络层的IP协议中,TCP包包括源端口号,目标端口号 一个TCP连接需要四个元祖表明是同一连接(src_ip,src_ ...
- php取上个月月初和月末时间戳
$thismonth = date('m');$thisyear = date('Y');if ($thismonth == 1) { $lastmonth = 12; $lastyear = $th ...
- python 修改文件内容3种方法
原文链接:https://www.cnblogs.com/wc-chan/p/8085452.html def alter(file,old_str,new_str): ""&qu ...
- [转帖]Linux系列之SAR命令使用详解
Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...
- MySQL创建用户、为用户授权
一.创建用户 1.root用户(管理员)登录,进入mysql数据库 mysql> use mysql Database changed 2.创建用户 1.创建用户: # 指定ip:192.168 ...
- Eclipse一些技巧
1:测试某个测试溢出,修改堆内存大小 // 模拟内存溢出 -Xms10m -Xmx10m private static void mockOOM() { List list = new ArrayLi ...