中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

python中怎么發(fā)送郵件

這篇文章將為大家詳細講解有關(guān)python中怎么發(fā)送郵件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比凌源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式凌源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋凌源地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

第一種:正常發(fā)送郵件,也就是同步發(fā)送郵件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/14 10:14
# @Author : Andrew
# @Site :
# @File : send_mail.py
# @Software: PyCharm
from email.mime.text import MIMEText
import smtplib
from email.header import Header
from email.utils import parseaddr, formataddr  # 設置編碼格式
from email.mime.multipart import MIMEMultipart


class SendMail:
   def __init__(self):
       # 定義email的地址,口令和SMTP服務器地址
       self.from_addr = '發(fā)送者郵箱'
       self.password = "pass"  # 注意此處輸入的密碼是自己設置的協(xié)議密碼
       self.to_addr = '*@126.com'
       self.smtp_server = 'smtp.163.com'
   def format_addr(self, s):
       # 將用戶名編碼設置成UTF-8
       name, addr = parseaddr(s)
       return formataddr((Header(name, 'utf-8').encode(), addr))

   def msg_parse(self):
       # 定義郵件本身內(nèi)容
       msg = MIMEMultipart()
       msg['From'] = self.format_addr(f'發(fā)送者<{self.from_addr}>')
       msg['To'] = self.format_addr(f'接收者<{self.to_addr}>')
       msg['Subject'] = Header('hhh,爬蟲又出錯了,請及時修復', 'utf-8').encode()
       # 定義郵件正文
       msg.attach(MIMEText('使用python發(fā)來的郵件3', 'plain', 'utf-8'))
       # 加附件
       # with open(r'C:\Users\Administrator\Desktop\test\test0.jpg', 'rb') as f:
       #     # 設置附件的MIME和文件名,這里是jpg類型,可以換png或其他類型:
       #     mime = MIMEBase('image', 'jpg', filename='test0.jpg')
       #     mime.add_header('Content-Disposition', 'attchment', filename='test0.jpg')
       #     mime.add_header('Content-ID', '<0>')
       #     mime.add_header('X-Attachment-ID', '0')
       #     mime.set_payload(f.read())
       #     encoders.encode_base64(mime)
       #     msg.attach(mime)
       server = smtplib.SMTP_SSL(self.smtp_server, 465)
       # server.set_debuglevel(1)
       server.login(self.from_addr, self.password)
       server.sendmail(self.from_addr, [self.to_addr], msg.as_string())
       server.quit()


if __name__ == '__main__':
   SendMail().msg_parse()

第二種:使用異步庫發(fā)送郵件

注意事項:這種方式需要使用異步庫 asyncio, 需要使用時間循環(huán),也就是get_event_loop, 也就是 main 里面寫的代碼,如果是你重開線程使用異步發(fā)送郵件的話,這個會出問題。需要使用 new_event_loop 記住下面這句話:

get_event_loop() 方法僅在同樣的線程中生效,如果在一個新線程中,應該用 new_event_loop() 來獲取新的 loop,并通過 set_event_loop(loop) 來將其設為該線程下的 loop。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/14 10:14
# @Author : Andrew
# @Site :
# @File : send_mail.py
# @Software: PyCharm
import asyncio
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
from email.header import Header
import aiosmtplib
import logging


class SendMail:
   def __init__(self):
       # 定義email的地址,口令和SMTP服務器地址
       self.from_addr = '*@163.com'
       self.password = "pass"  # 注意此處輸入的密碼是自己設置的協(xié)議密碼
       self.to_addr = '*@126.com'
       self.smtp_server = 'smtp.163.com'
   def format_addr(self, s):  # 格式化地址 也方便發(fā)送中文
       name, addr = parseaddr(s)
       return formataddr((Header(name, 'utf-8').encode(), addr))

   async def sendemail(self):
       title = '<html><body><h4>親愛的<a data-auto-link="1" href="mailto:%s" target="_blank">%s</a>,您好:</h4>' % (
       self.to_addr, self.to_addr)
       tail = '爬蟲出錯了,請及時修復錯誤</body></html>'
       html = title + tail

       msg = MIMEText(html, 'html', 'utf-8')
       msg['From'] = self.format_addr('發(fā)送者 <%s>' % self.from_addr)
       msg['To'] = self.format_addr('親愛的程序員 <%s>' % self.to_addr)
       msg['Subject'] = Header('修復bug', 'utf-8').encode()

       try:
           async with aiosmtplib.SMTP(hostname=self.smtp_server, port=465, use_tls=True) as smtp:
               await smtp.login(self.from_addr, self.password)
               await smtp.send_message(msg)
       except aiosmtplib.SMTPException as e:
           logging.error('sendemail:%s' % e)


if __name__ == '__main__':
   loop = asyncio.get_event_loop()
   loop.run_until_complete(SendMail().sendemail())

第三種:使用 yagmail 庫發(fā)送郵件,三行代碼實現(xiàn)發(fā)送郵件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/14 10:14
# @Author : Andrew
# @Site :
# @File : send_mail.py
# @Software: PyCharm
import yagmail


def send_mail(content):
   yag = yagmail.SMTP(user='*@163.com', password='pass', host='smtp.163.com')
   contents = [content]  # 正文內(nèi)容
   yag.send('*@126.com', '主題:修復', contents)

關(guān)于python中怎么發(fā)送郵件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

文章題目:python中怎么發(fā)送郵件
網(wǎng)站地址:http://www.2m8n56k.cn/article7/pchpij.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護小程序開發(fā)做網(wǎng)站品牌網(wǎng)站設計網(wǎng)站建設商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
主站蜘蛛池模板: 欧美一级片在线看 | 久久香蕉精品视频 | 国产精品久久久久免费a∨ 国产精品久久久久免费视频 | 久久91精品国产一区二区 | 久久久综合结合狠狠狠97色 | 一区二区不卡久久精品 | 女人aaaaa片一级一毛片 | 最新理论三级中文在线观看 | 欧美国产一区二区三区 | 成人永久免费视频网站在线观看 | 免费在线精品视频 | 亚洲美女视频在线 | 成人欧美精品久久久久影院 | 精品国产免费一区二区三区 | 久久国产视频网 | 国产精品视频视频久久 | 三级毛片在线 | 最新国产中文字幕 | 在线观看人成网站深夜免费 | 久久爽久久爽久久免费观看 | 久久黄色网址 | 新版天堂中文资源8在线 | 男女视频在线观看 | 日韩欧美成人乱码一在线 | 51国产偷自视频区视频手机播器 | 日本又黄又爽又免费 | 国产三级精品三级国产 | 免费看裸色 | 成人毛片免费视频播放 | 韩国毛片 | 草草草影院 | 免费一级美国片在线观看 | 在线私拍国产福利精品 | 99久久香蕉国产综合影院 | 男人的天堂亚洲 | 亚洲 欧美 精品 | 萌白酱香蕉白丝护士服喷浆 | 最新最好看免费毛片基地 | 日本精品中文字幕有码 | 一级在线免费视频 | 久草国产视频 |