Python發(fā)送郵件的實(shí)例代碼講解
一、郵件發(fā)送示例
郵件發(fā)送示例
flask_email及smtplib原生郵件發(fā)送示例,適用于基于Flask框架開發(fā),但是內(nèi)部設(shè)置的定時(shí)任務(wù)發(fā)送郵件/或提供離線接口發(fā)送郵件操作
1.flask config配置
# QQ郵箱配置 MAIL_DEBUG = True # 開啟debug,便于調(diào)試看信息 MAIL_SUPPRESS_SEND = False # 發(fā)送郵件,為True則不發(fā)送 MAIL_SERVER = 'smtp.qq.com' # 郵箱服務(wù)器 MAIL_PORT = 465 # 端口 MAIL_USE_SSL = True # 重要,qq郵箱需要使用SSL MAIL_USE_TLS = False # 不需要使用TLS MAIL_USERNAME = '@qq.com' # 填郵箱 MAIL_PASSWORD = '' # 填授權(quán)碼 FLASK_MAIL_SENDER = '@qq.com' # 郵件發(fā)送方 FLASK_MAIL_SUBJECT_PREFIX = '' # 郵件標(biāo)題 MAIL_DEFAULT_SENDER = '@qq.com' # 填郵箱,默認(rèn)發(fā)送者
2.示例代碼
import smtplib import constant # 定義常量文件 from email.header import Header from email.mime.text import MIMEText constant.SMTP_SERVER = 'smtp.qq.com' constant.PORT = 465 class EmailSender(object): def __init__(self, subject, receivers, sender='ss@qq.com', password='123456', offline=False, html_body=None, text_body=None, **kwargs): self.subject = subject self.receivers = receivers self.sender = sender self.password = password if offline: if html_body: self.send_body = html_body self._subtype = 'html' elif text_body: self.send_body = text_body self._subtype = 'plain' self.send_email_offline() else: from flask_mail import Mail self.mail = Mail() dic = dict(kwargs) self.send_email(html_body, text_body, attachments=dic.get("attachments"), sync=dic.get("sync")) def send_email_offline(self): try: message = MIMEText(self.send_body, self._subtype, 'utf-8') message['From'] = self.sender message['To'] = ','.join(self.receivers) message['Subject'] = Header(self.subject, 'utf-8') smtpObj = smtplib.SMTP_SSL(constant.SMTP_SERVER, constant.PORT) smtpObj.login(self.sender, self.password) smtpObj.sendmail( self.sender, self.receivers, message.as_string()) smtpObj.quit() except smtplib.SMTPException: return "smtp服務(wù)器發(fā)送異常 >> 無(wú)法發(fā)送郵件" except Exception as e: return f"郵件發(fā)送失敗 >> {e}" def send_email(self, text_body, html_body, attachments=None, sync=False): from threading import Thread from flask import current_app from flask_mail import Message try: msg = Message(self.subject, recipients=self.receivers) msg.body = text_body msg.html = html_body if attachments: for attachment in attachments: msg.attach(*attachment) if not sync: self.mail.send(msg) else: Thread(target=self.send_async_email, args=(current_app._get_current_object(), msg)).start() except Exception as e: return f"郵件發(fā)送失敗 >> {e}" def send_async_email(self, app, msg): with app.app_context(): try: self.mail.send(msg) except Exception as e: print(f"郵件發(fā)送錯(cuò)誤信息:{e}")
3.使用
err = EmailSender(subject='吃貨詢問(wèn)', receivers=["123@qq.com", "1234@qq.cn"], text_body='吃了沒呀?', offline=True) if err: print(err)
以上3點(diǎn)就是關(guān)于Python發(fā)送郵件的全部知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
- Python Flask異步發(fā)送郵件實(shí)現(xiàn)方法解析
- python使用QQ郵箱實(shí)現(xiàn)自動(dòng)發(fā)送郵件
- Python發(fā)送郵件封裝實(shí)現(xiàn)過(guò)程詳解
- python實(shí)現(xiàn)QQ郵箱發(fā)送郵件
- Python3實(shí)現(xiàn)發(fā)送郵件和發(fā)送短信驗(yàn)證碼功能
- selenium+python實(shí)現(xiàn)登陸QQ郵箱并發(fā)送郵件功能
- Python 調(diào)用 Outlook 發(fā)送郵件過(guò)程解析
- Python 發(fā)送郵件方法總結(jié)
相關(guān)文章
解決jupyter notebook圖片顯示模糊和保存清晰圖片的操作
這篇文章主要介紹了解決jupyter notebook圖片顯示模糊和保存清晰圖片的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04pycharm 將django中多個(gè)app放到同個(gè)文件夾apps的處理方法
今天小編就為大家分享一篇pycharm 將django中多個(gè)app放到同個(gè)文件夾apps的處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python+Matplotlib實(shí)現(xiàn)繪制三維折線圖
立體圖視覺上層次分明色彩鮮艷,具有很強(qiáng)的視覺沖擊力,讓觀看的人駐景時(shí)間長(zhǎng),留下深刻的印象。今天我們就通過(guò)這篇文章來(lái)了解如何用python中的matplotlib庫(kù)繪制漂亮的三維折線圖吧2023-03-03python初學(xué)之用戶登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解)
下面小編就為大家分享一篇python初學(xué)之用戶登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12python 創(chuàng)建一維的0向量實(shí)例
今天小編就為大家分享一篇python 創(chuàng)建一維的0向量實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python爬蟲數(shù)據(jù)保存到mongoDB的實(shí)例方法
在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲數(shù)據(jù)保存到mongoDB的實(shí)例方法,有需要的朋友們可以參考下。2020-07-07Python腳本按照當(dāng)前日期創(chuàng)建多級(jí)目錄
今天小編就為大家分享一篇關(guān)于Python腳本按照當(dāng)前日期創(chuàng)建多級(jí)目錄,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03