Python发邮件脚本,Python调用163邮箱SMTP服务实现邮件群发
邮件营销,一个昔日辉煌,如今没落的广告营销方式,曾经的恶意广告邮件群发,到现在还存留着的大站协议群发,可能还是有不少人能够做到正常群发邮件,但大概率很多人都不会点开邮件查看邮件内容吧,除非是很许可的,重要的邮件通知,比如面试相关邮件。
不过国外,尤其是外贸,对于邮件营销,邮件的收发还是存在的,这就有了下面这个命题,Python发邮件脚本,本渣渣当然不会,直接调包吧,度娘搜索现成的脚本,例子,即可,好好的做一个调包侠,难道不香吗?
关于SMTP
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。
增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。
网易163免费邮箱相关服务器信息:
PyEmail库 安装
pip install PyEmail
PyEmail库 使用
模块名:Pyemail
包含类:PyEmail()
实例化:mail = PyEmail('mixed')
参数有:alternative,related,mixed(来自于email模块)
- 登录三方SMTP:mail.enter(mail_host=, port=, mail_user, mail_pass=)
第一参数是第三方SMTP地址 第二参数是对应端口 第三参数是邮箱账号 第四参数是授权码
- 发送邮件:mail.sendemail(sender=, receivers=)
第一参数是发送者邮箱地址(字符串格式) 第二参数是接收者邮箱地址(字符串的列表)
- 构造头部信息:mail.header_info(from_= ; to_= ; subject= )
第一参数是发件人(字符串格式)
第二参数是收件人(字符串格式)
第三参数是主题信息(字符串格式)
- 构造纯文本内容:mail.Text(text=)
唯一参数text,纯文本内容(字符串格式)
- 构造超文本内容:mail.Html(hype_text=)
唯一参数hype_text,超文本内容(字符串格式)
- 构造图片内容:mail.Image(pic_address=, pic_cid)
第一参数是图片地址(字符串格式)
第二参数是图片id(字符串格式),与超文本中cid保持一致
- 构造附件内容:mail.Enc(enc_address=. enc_name=)
第一参数是附件地址(字符串格式)
第二参数是附件名称(字符串格式),在邮件中显示的名称
源码参考
#Python 网易邮箱简单发送邮件
# -*- coding: utf-8 -*-
import smtplib # 导入PyEmail
from email.mime.text import MIMEText
import time
# 邮件构建
def send(i):
subject = f"【第{i}封】滴滴答答~胖子快收邮件!" # 邮件标题
sender = "xxxxx@163.com" # 发送方
content = "国庆中秋双节快乐!"
recver = "xxxxxx@qq.com" # 接收方
password = "*******" #邮箱密码
message = MIMEText(content, "plain", "utf-8")
# content 发送内容 "plain"文本格式 utf-8 编码格式
message['Subject'] = subject # 邮件标题
message['To'] = recver # 收件人
message['From'] = sender # 发件人
smtp = smtplib.SMTP_SSL("smtp.163.com", 994) # 实例化smtp服务器
smtp.login(sender, password) # 发件人登录
smtp.sendmail(sender, [recver], message.as_string()) # as_string 对 message 的消息进行了封装
smtp.close()
print("发送邮件成功!!")
if __name__=='__main__':
for i in range(1,11):
send(i)
time.sleep(8)
群发效果
测试了一下163免费邮箱发送QQ邮箱,几乎都进入垃圾箱,发十封邮件,可能只有一两封没有进垃圾箱,可想而知,现今对于邮件营销的的控制,相信也从中可以看出昔日广告邮件的疯狂程度,话说,现在国内谁还看邮件呢,除了必要的邮件通知,几乎大概率都是广告邮件,恶意营销吧!
参考来源:
什么是POP3、SMTP和IMAP?
https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac22dc0e9af8168582a
【私人订制Python模块库】Pyemail:更方便快捷地发送电子邮件
https://blog.csdn.net/nilvya/article/details/104658472
Python PyEmail包_程序模块 - PyPI - Python中文网
https://www.cnpython.com/pypi/pyemail
python使用163邮箱发送邮件
https://blog.csdn.net/qlzy_5418/article/details/86661883
- Python超过R,成为数据科学和机器学习的最常用语言
- JavaScript 之 this 详解
- Golang 中 for-loop 和 goroutine 的问题
- 【学术】一文教你如何正确利用kNN进行机器学习
- 【学术】机器学习优化函数的直观介绍
- 基于达尔文进化论的遗传算法,还能帮你破解同事的密码?| 附代码
- Vue + Node + Mongodb 开发一个完整博客流程
- Golang中用interface{}接收任何参数与强转
- Machine Box创始人教你快速建立一个ML图像分类器
- 【图解】Web前端实现类似Excel的电子表格
- 一个简单而强大的深度学习库—PyTorch
- CSS实现水平|垂直居中漫谈
- 深度学习开源框架PaddlePaddle发布新版API,简化深度学习编程
- HTML5游戏引擎深度测评
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 频繁FGC的真凶原来是它
- 类加载器知识点吐血整理
- ThreadPoolExecutor 线程池"源码分析"
- 一起刷 leetcode 之螺旋矩阵(头条和美团真题)
- 如何快速判断一个用户是否访问过我们的 APP?
- replication-manager之switchover剖析
- 组复制安装部署 | 全方位认识 MySQL 8.0 Group Replication
- 提升低端设备的 Web 性能
- TypeScript 4.0 RC发布,带来诸多更新
- istio mcp实现探究
- K8S 生态周报| Helm v2 进入维护期倒计时
- Halcon实例转OpenCV:计算回形针方向
- OpenCV检测轮廓极点(Python C++)
- 「Python 正则」使用专题总结
- 如何真正理解好一个「设计模式」?