Python3实现邮件群发
生活随笔
收集整理的这篇文章主要介绍了
Python3实现邮件群发
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
(1)在 mysql 数据库创建 mail 数据库,并创建 mail 表
(2)将邮箱的电子邮件地址存在于mail 表中
(3)编写 python 程序
# -*- coding: utf-8 -*- import smtplib from email.mime.text import MIMEText import time import MySQLdb# 从数据库中获取ip地址列表 def get_addr():# 连接数据库conn = MySQLdb.Connection('127.0.0.1', 'root', '123456', 'mail')cursor = conn.cursor()# 执行SQL语句,获取邮箱地址cursor.execute("SELECT * FROM mail")result = cursor.fetchall()return result# 发送邮件 def send_mail(to_list):mail_server = "smtp.163.com" # 邮箱hostmail_port = 25 # 端口号sender = "XXXXXXXXX@163.com" # 自己的邮箱账号sender_password = "XXXXXX" # 授权码,不是账号密码receivers = to_list # 对方的邮箱账号# 邮件内容message = MIMEText('Python邮件发送测试...', 'plain', 'utf-8')message['From'] = sender # 发送者message['To'] = receivers # 接受者# 设置邮件的主题send_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))subject = '邮件测试' + send_timemessage['Subject'] = subjecttry:smtp_obj = smtplib.SMTP()smtp_obj.connect(mail_server, mail_port) # 连接邮箱的服务器smtp_obj.login(sender, sender_password) # 登录自己的邮箱smtp_obj.sendmail(sender, [receivers], message.as_string()) # 真正开始发送邮件print('success!')except smtplib.SMTPException as e:print('failure!')print(e)if __name__ == '__main__':result = get_addr()for record in result:send_mail(record[1])# 休眠5秒,短时间大量发送邮件可能会造成发送失败或者账号被封time.sleep(5)# 也可以直接填写对方的邮箱账号# send_mail("XXXX@163.com")另外,也可以直接填写对方的邮箱账号,进行特定用户的邮件发送。
Github地址:https://github.com/xuxin199601/send_email
(4)成功发送邮件!
自己邮箱中的已发送列表:
对方邮箱中的收信箱:
但是,但是…
如果短时间大量发送邮件可能会造成发送失败或者账号被封
总结
以上是生活随笔为你收集整理的Python3实现邮件群发的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 实现 Java 本地缓存
- 下一篇: Python 通过ctypes调用 IC