1.1 发送qq邮箱

  注:python代理登录qq邮箱发邮件,是需要更改自己qq邮箱设置的。在这里大家需要做两件事情:邮箱开启SMTP功能 、获得授权码 教程链接

  1、给单个人发邮件 参考

from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL #qq邮箱smtp服务器
host_server = 'smtp.qq.com'
#sender_qq为发件人的qq号码
sender_qq = '153236xxx'
#pwd为qq邮箱的授权码
pwd = 'drjzidfyftatheca'
#发件人的邮箱
sender_qq_mail = '153236xxx@qq.com'
#收件人邮箱
receiver = '153236xxx@qq.com'
#邮件的正文内容
mail_content = '你好,我是来自知乎的[tom肖] ,现在在进行一项用python登录qq邮箱发邮件的测试'
#邮件标题
mail_title = '您好,这是测试邮件' #ssl登录
smtp = SMTP_SSL(host_server)
#set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式
smtp.set_debuglevel(1)
smtp.ehlo(host_server)
smtp.login(sender_qq, pwd) msg = MIMEText(mail_content, "plain", 'utf-8')
msg["Subject"] = Header(mail_title, 'utf-8')
msg["From"] = sender_qq_mail
msg["To"] = receiver
smtp.sendmail(sender_qq_mail, receiver, msg.as_string())
smtp.quit()

给单个人发邮件

  2、群发

from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL #sender_qq为发件人的qq号码
sender_qq = '1532363xxx'
#pwd为qq邮箱的授权码
pwd = 'drjzidfyftatheca'
#收件人邮箱receiver
receiver='1532363xxx@qq.com'
#邮件的正文内容
mail_content = '你好,我是来自博客园的[tom肖] ,现在在进行一项用python登录qq邮箱发邮件的测试'
#邮件标题
mail_title = '这是一封测试邮件' def send_mail(sender_qq='',pwd='',receiver='',mail_title='',mail_content=''):
# qq邮箱smtp服务器
host_server = 'smtp.qq.com'
sender_qq_mail = sender_qq+'@qq.com' #ssl登录
smtp = SMTP_SSL(host_server)
#set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式
smtp.set_debuglevel(1)
smtp.ehlo(host_server)
smtp.login(sender_qq, pwd) msg = MIMEText(mail_content, "plain", 'utf-8')
msg["Subject"] = Header(mail_title, 'utf-8')
msg["From"] = sender_qq_mail
msg["To"] = receiver
smtp.sendmail(sender_qq_mail, receiver, msg.as_string())
smtp.quit() for i in range(10):
send_mail(sender_qq=sender_qq,pwd=pwd,receiver=receiver,mail_title=mail_title,mail_content=mail_content)

测试群发邮件

  3、邮件格式化

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import datetime def format_email(not_phone_list):
with open('content.html','r') as f:
content = f.read()
not_phone_list = [{'jobid':'','name':'张三','mobile':''},
{'jobid':'','name':'李四','mobile':''},
{'jobid':'','name':'王五','mobile':''}]
tr = '''
<tr>
<td>%s</td>
<td>%s</td>
<td>%s</td>
</tr>
'''
s = ''
for info in not_phone_list:
s += tr%(info.get('jobid'),info.get('name'),info.get('mobile'))
content = content.replace('ReplaceContent',s)
return content def notify_by_email(not_phone_list):
tos = 'naiqiang.xiao@yiducloud.cn' # 发送的人员
mailapi = 'http://op.intra.yiducloud.cn/phpmail/mail.php'
sender = 'opsheet'
mailtype = 'html' subject = '-'.join(['MIS系统同步通知', '预入职库中无法获取人员名单'])
content = format_email(not_phone_list)
data = {'content': content, 'subject': subject, 'tos': tos, 'mailtype': mailtype, 'sender': sender}
try:
r = requests.get(mailapi, params=data)
return r.status_code
except Exception as e:
print e notify_by_email('')

send_email.py

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.table{
border-spacing: 0;
border-collapse: collapse;
}
.table thead tr th,td{
padding: 20px;
padding-left: 50px;
vertical-align: top;
border-top: 1px solid #ddd;
}
td,th{
display: table-cell;
}
</style>
</head>
<body>
<table class="table table-striped">
<thead>
<tr>
<th>工号</th>
<th>姓名</th>
<th>手机号</th>
</tr>
</thead>
<tbody>
ReplaceContent
</tbody>
</table>
</body>
</html>

content.html

02: python3使用email和smtplib库发送邮件的更多相关文章

  1. python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

    python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPA ...

  2. python使用smtplib和email库发送邮件

    国内很多服务器提供商都默认禁止了smtp默认的25端口服务,而启用465端口发送邮件 在smtplib库中直接调用SMTP_SSL就是默认使用465端口 示例代码如下: def send_eamil( ...

  3. python:利用smtplib模块发送邮件详解

    自动化测试中,测试报告一般都需要发送给相关的人员,比较有效的一个方法是每次执行完测试用例后,将测试报告(HTML.截图.附件)通过邮件方式发送. 首先我们要做: 进入163邮箱,点击设置中的pop3/ ...

  4. Python3+HTMLTestRunner+SMTP生成测试报告后发送邮件

    在前一篇https://www.cnblogs.com/zhengyihan1216/p/11549820.html 中记录了如何生成html格式的报告, 这篇记录下怎么将测试报告通过邮件发出 1.对 ...

  5. python之使用smtplib模块发送邮件

    # 使用smtplib模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Heade ...

  6. python之smtplib模块 发送邮件

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #smtplib模块 发送邮件 import smtplib from email.mime.text imp ...

  7. 使用python的email、smtplib、poplib模块收发邮件

    使用python的email.smtplib.poplib模块收发邮件 一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理.(即类似Outlook的电子邮件软件) MTA: ...

  8. python的email、smtplib、poplib模块收发邮件

    一封电子邮件的旅程是: MUA:Mail User Agent--邮件用户代理.(即类似Outlook的电子邮件软件) MTA:Mail Transfer Agent--邮件传输代理,就是那些Emai ...

  9. Python3 网络爬虫(请求库的安装)

    Python3 网络爬虫(请求库的安装) 爬虫可以简单分为几步:抓取页面,分析页面和存储数据 在页面爬取的过程中我们需要模拟浏览器向服务器发送请求,所以需要用到一些python库来实现HTTP的请求操 ...

随机推荐

  1. POJ_2533_Longest Ordered Subsequence

    Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 55490   Acc ...

  2. Oracle体系结构之数据库启动的不同状态

    数据库启动的不同状态: nomount状态:spfile和plile mount状态:control file open状态:data file和redo file 启动数据库的过程:nomount状 ...

  3. 安装中文输入法 ubuntu shortcut desktop

    安装中文输入法 Kali自带是不能输入中文的,因此我安装了搜狗输入法和谷歌输入法(我做备份的),安装其一便可以.建议安装前apt-get update下,刷新下.其次安装好任意输入法需要重启下才能正常 ...

  4. Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建

    环境: ubuntu14.04 adt-bundle-linux-x86_64 android-ndk-r9d-linux-x86_64 cocos2d-x-3.0正式版 apache-ant 1.9 ...

  5. 超级详细的RedGateSqlServer工具教程,效率提高的不止一点点之SQLPrompt

    距离上次SQLDoc教程贴过去2个月了,时间真快,好了,废话不多说,继续 http://pan.baidu.com/share/link?shareid=177401896&uk=330822 ...

  6. Scala集合类详解

    对scala中的集合类虽然有使用,但是一直处于一知半解的状态.尤其是与java中各种集合类的混合使用,虽然用过很多次,但是一直也没有做比较深入的了解与分析.正好趁着最近项目的需要,加上稍微有点时间,特 ...

  7. [py]约瑟夫问题-循环队列

    约瑟夫问题(历史战争问题) 直观理解 老外视频讲解 模拟器演示 约瑟夫问题 数学姥公众号 讲的最清楚 背景及,推倒过程讲解得很清晰,旨在提高人们对数据的兴趣 简单说下: 几个人围成一圈(循环队列), ...

  8. BFS广搜题目(转载)

    BFS广搜题目有时间一个个做下来 2009-12-29 15:09 1574人阅读 评论(1) 收藏 举报 图形graphc优化存储游戏 有时间要去做做这些题目,所以从他人空间copy过来了,谢谢那位 ...

  9. [LeetCode] 561. Array Partition I_Easy tag: Sort

    Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1 ...

  10. Log4net 乱码问题解决

    在将log4net输出到UdpAppender会出现乱码问题,当然,丢到第三方日志分析工具glaylog下,也出现中文乱码. <?xml version="1.0"?> ...