欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python3实现邮件群发

发布时间:2025/4/16 python 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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实现邮件群发的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。