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 本地缓存
- 下一篇: PyCharm无法启动的问题