由于可能需要的功能,寻找可以群发邮件的办法,寻找过几个免费和付费平台,但是均不是特别满意。于是老唐同学说可以用Python结合阿里云邮件推送服务。这里把可以实现的Python SMTP脚本整理出来,脚本也来自阿里云提供的。这里老蒋记录下来,以便以后有需要的时候直接使用,不至于遗忘。

第一、脚本代码

# -*- coding:utf-8 -*-

import smtplib

import email

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.mime.base import MIMEBase

from email.mime.application import MIMEApplication

from email.header import Header

# 发件人地址,通过控制台创建的发件人地址

username = '***'

# 发件人密码,通过控制台创建的发件人密码

password = '***'

# 自定义的回复地址

replyto = '***'

# 收件人地址或是地址列表,支持多个收件人,最多30个

#rcptto = ['***', '***']

rcptto = '***'

# 构建alternative结构

msg = MIMEMultipart('alternative')

msg['Subject'] = Header('自定义信件主题'.decode('utf-8')).encode()

msg['From'] = '%s ' % (Header('自定义发信昵称'.decode('utf-8')).encode(), username)

msg['To'] = rcptto

msg['Reply-to'] = replyto

msg['Message-id'] = email.utils.make_msgid()

msg['Date'] = email.utils.formatdate()

# 构建alternative的text/plain部分

textplain = MIMEText('自定义TEXT纯文本部分', _subtype='plain', _charset='UTF-8')

msg.attach(textplain)

# 构建alternative的text/html部分

texthtml = MIMEText('自定义HTML超文本部分', _subtype='html', _charset='UTF-8')

msg.attach(texthtml)

# 发送邮件

try:

client = smtplib.SMTP()

#python 2.7以上版本,若需要使用SSL,可以这样创建client

#client = smtplib.SMTP_SSL()

#SMTP普通端口为25或80

client.connect('smtpdm.aliyun.com', 25)

#开启DEBUG模式

client.set_debuglevel(0)

client.login(username, password)

#发件人和认证地址必须一致

#备注:若想取到DATA命令返回值,可参考smtplib的sendmaili封装方法:

# 使用SMTP.mail/SMTP.rcpt/SMTP.data方法

client.sendmail(username, rcptto, msg.as_string())

client.quit()

print '邮件发送成功!'

except smtplib.SMTPConnectError, e:

print '邮件发送失败,连接失败:', e.smtp_code, e.smtp_error

except smtplib.SMTPAuthenticationError, e:

print '邮件发送失败,认证错误:', e.smtp_code, e.smtp_error

except smtplib.SMTPSenderRefused, e:

print '邮件发送失败,发件人被拒绝:', e.smtp_code, e.smtp_error

except smtplib.SMTPRecipientsRefused, e:

print '邮件发送失败,收件人被拒绝:', e.smtp_code, e.smtp_error

except smtplib.SMTPDataError, e:

print '邮件发送失败,数据接收拒绝:', e.smtp_code, e.smtp_error

except smtplib.SMTPException, e:

print '邮件发送失败, ', e.message

except Exception, e:

print '邮件发送异常, ', str(e)

参考出处:https://help.aliyun.com/document_detail/29453.html

第二、注意事项

1、在python2.7环境中测试可行的,据说3.x不行。

2、根据需要我们设置发件箱,以及相关参数,建议使用SSL推送,不能用25端口,得用465端口。

3、更主要的是脚本不能用email.py命名,要不会出现"解决"smtplib推送邮件时候出现smtplib.py"问题"的问题。

python无限制邮件群发软件_收藏 - 使用Python通过SMTP协议群发/单发邮件方法相关推荐

  1. python开发app的软件_如何利用python开发手机app

    python语言虽然很万能,但用它来开发app还是显得有点不对路,因此用python开发的app应当是作为编码练习,加上目前这方面的模块还不是特别成熟,bug比较多. 准备工作 利用python开发a ...

  2. python人工智能文字识别软件_怎么用Python人工智能识别图片-百度AI文字识别使用方法分享 - Iefans...

    如果你是个Python初学者,那么你可以试着做做看这个教程,毕竟编程技能都是在实战中成长的,这篇教程是教你如何用Python来进行人工智能识别图片,可以帮助你解决日常办公时遇到的图片转换文字的问题. ...

  3. python初学者用什么软件_初学者编写python用什么软件

    https://www.php.cn/python-tutorials-444073.html 以下是常用的几款Python代码编辑器和Python集成开发工具. 一.Python代码编辑器 1. S ...

  4. python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...

    创建应用的步骤打开命令行 进入manage.py的同级目录 命令行输入:python manage.py startapp blog 添加应用名到sittings.py中的Installed_apps ...

  5. python制作翻译小软件_如何基于Python制作有道翻译小工具

    这篇文章主要介绍了如何基于Python制作有道翻译小工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 该工具主要是利用了爬虫,爬取web有道翻译的 ...

  6. python画画用哪个软件_如何用python画韦恩图? 使用python的tutul工具,画一朵雏菊花...

    使用python的tutul工具,画一朵雏菊花 如何用python画韦恩图?不管什么时候,给心留一点空间.人生一世,不用什么都要去争,不是什么都要去抢,欲望少一点,满足多一点,这样才会活得潇洒一点,人 ...

  7. python编码用什么软件_彻底解决Python编码问题

    1. 基本概念 字符集(Character set) 解释:文字和符合的总称 常见字符集: Unicode字符集 ASCII字符集(Unicode子集) GB2312字符集 编码方法(Encoding ...

  8. 怎么用python制作随机点名软件_如何用python编写一个简易的随机点名软件?

    自问自答哈哈,高铁上随便写的代码 不过randint那里debug好像要(0, 3)不知道是什么原因 import random my_list = ['张三', '李四', '王五', '杨六'] ...

  9. 怎么用python制作随机点名软件_如何用python编写一个简易的随机点名软件

    展开全部 思路:1.定义一个字2113典,把名字和数字对应起5261来:2.引用随机4102模块:3.输入要点名的个数1653,通过循环输出名字. 具体代码如下:# -*- coding:utf-8 ...

最新文章

  1. 2021年2月反思与总结
  2. DJ轮回舞曲网下载教程
  3. Spring的基本使用
  4. 网页没有横向滚动条_【第四课】网页里的表单
  5. 从第一范式(2nf)到第二范式(3nf)_啥是数据库范式
  6. 【Cisco NA】单臂路由+DHCP+DHCP中继+GRE Tunnel
  7. 实验3-8 输出三角形面积和周长 (15 分)
  8. idea拉出Output窗口和还原窗口
  9. ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区...
  10. solidworks_adams_simuilink联合仿真简易教程
  11. 并发队列中迭代器弱一致性原理探究
  12. 计算机上分辨率怎么设置在哪里设置方法,windows7如何设置分辨率_windows7设置分辨率的方法...
  13. 雅虎终于死了:从市值 1000 亿到贱卖 48 亿,到最后连名字都没保住
  14. 【华为OD机试真题 JAVA】数字涂色
  15. 【MongoDB-MongoVUE图像管理工具】
  16. 你还在用二分法求2个鸡蛋100层楼的问题吗?
  17. 【Proteus+51单片机学习笔记】-51/52系列单片机简介
  18. J storm战队成员_2019-2020赛季DOTA2各战队阵容名单汇总
  19. 字节跳动校招编程题——特征提取 python
  20. android google map v2 获取当前位置,如何在google map v2中获取当前位置信息?

热门文章

  1. XSS(跨站脚本攻击)相关内容总结整理
  2. 【广告架构day1】爱奇艺广告系统的演进之路:实践中的一些经验
  3. stl文件html预览,基于SpringMVC对stl文件的3D可视化
  4. 选择适合你的虚拟现实体验
  5. 西瓜视频中视频计划还有机会吗?
  6. 04_Linux ARM架构-部署kibana服务-银河麒麟V10 操作系统
  7. QEMU 网络配置一把梭
  8. Mysql主从复制+读写分离
  9. Vue 中echarts的数据参数使用、X轴Y轴
  10. gt 630 linux驱动下载,Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动