最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)發(fā)送郵件功能

 更新時(shí)間:2017年07月22日 16:15:44   作者:修仙小白  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)發(fā)送郵件功能,使用的模塊是smtplib、MIMEText,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)發(fā)送郵件功能的具體代碼,供大家參考,具體內(nèi)容如下

依賴:

Python代碼實(shí)現(xiàn)發(fā)送郵件,使用的模塊是smtplib、MIMEText,實(shí)現(xiàn)代碼之前需要導(dǎo)入包:

import smtplib
from email.mime.text import MIMEText

使用163郵件發(fā)送郵件,具體代碼實(shí)現(xiàn)如下:

import smtplib
from email.mime.text import MIMEText
'''
發(fā)送郵件函數(shù),默認(rèn)使用163smtp
:param mail_host: 郵箱服務(wù)器,16郵箱host: smtp.163.com
:param port: 端口號(hào),163郵箱的默認(rèn)端口是 25
:param username: 郵箱賬號(hào) xx@163.com
:param passwd: 郵箱密碼(不是郵箱的登錄密碼,是郵箱的授權(quán)碼)
:param recv: 郵箱接收人地址,多個(gè)賬號(hào)以逗號(hào)隔開(kāi)
:param title: 郵件標(biāo)題
:param content: 郵件內(nèi)容
:return:
'''

def send_mail(username, passwd, recv, title, content, mail_host='smtp.163.com', port=25):
  msg = MIMEText(content)  # 郵件內(nèi)容
  msg['Subject'] = title   # 郵件主題
  msg['From'] = username   # 發(fā)送者賬號(hào)
  msg['To'] = recv      # 接收者賬號(hào)列表
  smtp = smtplib.SMTP(mail_host, port=port)   # 連接郵箱,傳入郵箱地址,和端口號(hào),smtp的端口號(hào)是25
  smtp.login(username, passwd)          # 登錄發(fā)送者的郵箱賬號(hào),密碼
  # 參數(shù)分別是 發(fā)送者,接收者,第三個(gè)是把上面的發(fā)送郵件的 內(nèi)容變成字符串
  smtp.sendmail(username, recv, msg.as_string())
  smtp.quit() # 發(fā)送完畢后退出smtp
  print('email send success.')

if __name__ == '__main__':
  email_user = 'xxxx@163.com' # 發(fā)送者賬號(hào)
  email_pwd = 'xxxxx' # 發(fā)送者密碼,授權(quán)碼
  maillist = 'xxxx@qq.com'
  title = '測(cè)試郵件標(biāo)題'
  content = '這里是郵件內(nèi)容'
  send_mail(email_user, email_pwd, maillist, title, content)

163郵箱的授權(quán)碼獲取方法如下:

1. 登錄163郵箱,點(diǎn)擊設(shè)置-POP3/SMTP/IMAP,如下:

2. 開(kāi)啟SMTP服務(wù)且可以查詢SMTP的host地址:

3. 點(diǎn)擊客戶端授權(quán)密碼,可以重置授權(quán)碼:

使用QQ郵件發(fā)送郵件,具體代碼實(shí)現(xiàn)如下:

import smtplib
from email.mime.text import MIMEText
'''
發(fā)送郵件函數(shù),默認(rèn)使用163smtp
:param mail_host: 郵箱服務(wù)器,qq郵箱host: smtp.qq.com
:param port: 端口號(hào),qq郵箱的默認(rèn)端口是: 456
:param username: 郵箱賬號(hào) xx@163.com
:param passwd: 郵箱密碼(不是郵箱的登錄密碼,是郵箱的授權(quán)碼)
:param recv: 郵箱接收人地址,多個(gè)賬號(hào)以逗號(hào)隔開(kāi)
:param title: 郵件標(biāo)題
:param content: 郵件內(nèi)容
:return:
'''
#qq郵箱發(fā)送郵件
def send_mail(username, passwd, recv, title, content, mail_host='smtp.qq.com', port=456):
  msg = MIMEText(content)  # 郵件內(nèi)容
  msg['Subject'] = title   # 郵件主題
  msg['From'] = username   # 發(fā)送者賬號(hào)
  msg['To'] = recv      # 接收者賬號(hào)列表
  smtp = smtplib.SMTP_SSL(mail_host, port=port)   # 連接郵箱,傳入郵箱地址,和端口號(hào),smtp的端口號(hào)是25
  smtp.login(username, passwd)          # 登錄發(fā)送者的郵箱賬號(hào),密碼
  # 參數(shù)分別是 發(fā)送者,接收者,第三個(gè)是把上面的發(fā)送郵件的 內(nèi)容變成字符串
  smtp.sendmail(username, recv, msg.as_string())
  smtp.quit() # 發(fā)送完畢后退出smtp
  print('email send success.')

if __name__ == '__main__':
  email_user = 'xxx@qq.com' # 發(fā)送者賬號(hào)
  email_pwd = 'WOSHINIGE123' # 發(fā)送者密碼,授權(quán)碼
  maillist = 'xxxx@qq.com'
  title = '測(cè)試郵件標(biāo)題'
  content = '這里是郵件內(nèi)容'
  send_mail(email_user, email_pwd, maillist, title, content)

多個(gè) 收件人且?guī)Ц郊?/p>

# import smtplib
# from email.mime.text import MIMEText
# '''
# 發(fā)送郵件函數(shù),默認(rèn)使用163smtp
# :param mail_host: 郵箱服務(wù)器,qq郵箱host: smtp.163.com
# :param port: 端口號(hào),qq郵箱的默認(rèn)端口是: 25
# :param username: 郵箱賬號(hào) xx@163.com
# :param passwd: 郵箱密碼(不是郵箱的登錄密碼,是郵箱的授權(quán)碼)
# :param recv: 郵箱接收人地址,多個(gè)賬號(hào)以逗號(hào)隔開(kāi)
# :param title: 郵件標(biāo)題
# :param content: 郵件內(nèi)容
# :return:
# '''
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

#郵箱服務(wù)器地址
email_host = 'smtp.163.com'
#發(fā)送者
email_user = 'xxxx@163.com'
#授權(quán)碼
email_pwd = 'WOSHINIGE123'
#多個(gè)收件人,使用分號(hào)分隔
maillist ='xxxx@qq.com;aaaa@qq.com'
#對(duì)多個(gè)收件人進(jìn)行分割,以;為標(biāo)準(zhǔn),返回結(jié)果是list['xxxx@qq.com','aaaa@qq.com']
email_info = maillist.split(';')
#構(gòu)造一個(gè)發(fā)附件的郵件內(nèi)容對(duì)象
new_msg = MIMEMultipart()
#郵件正文內(nèi)容
new_msg.attach(MIMEText('test email.....'))
#郵件主題
new_msg['Subject'] = 'test email'
#郵件發(fā)送者
new_msg['From'] = email_user
#郵件接收者,多個(gè)收件人的賬號(hào)使用,連接,傳入類型是str
new_msg['To'] = ','.join(email_info)
#打開(kāi)a.txt讀取文本內(nèi)容
att = MIMEText(open('a.txt').read())
att["Content-Type"] = 'application/octet-stream'
# 發(fā)送附件就得這么寫(xiě),固定格式,filename指定附件的名字
att["Content-Disposition"] = 'attachment; filename="haha.txt"'
new_msg.attach(att)
# 連接郵箱,傳入郵箱地址,和端口號(hào),smtp的端口號(hào)是25
smtp = smtplib.SMTP(email_host, port=25)
# 發(fā)送者的郵箱賬號(hào),密碼,先登錄
smtp.login(email_user, email_pwd)
smtp.sendmail(email_user, email_info, new_msg.as_string())
smtp.quit()
print('email send success.')

多個(gè)收件人時(shí)賬號(hào)之間使用分號(hào);分割,進(jìn)行smtp.sendmail(傳入的多個(gè)收件人類型是list);new_msg['TO'] = recv,接收的類型是str

 使用類實(shí)現(xiàn)郵件的發(fā)送,即可發(fā)送多人也可發(fā)送附件:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

class SendMail(object):
 def __init__(self, username, passwd, recv, title, content, file=None, email_host='smtp.163.com', port=25):
  self.username = username
  self.passwd = passwd
  self.recv = recv
  self.title = title
  self.content = content
  self.file = file
  self.email_host = email_host
  self.port = port

 def send_mail(self):
  msg = MIMEMultipart()
  #發(fā)送內(nèi)容的對(duì)象
  if self.file:#處理附件的
   att = MIMEText(open(self.file, encoding='utf-8').read())
   att["Content-Type"] = 'application/octet-stream'
   att["Content-Disposition"] = 'attachment; filename="%s"'%self.file
   msg.attach(att)
  msg.attach(MIMEText(self.content))#郵件正文的內(nèi)容
  msg['Subject'] = self.title # 郵件主題
  msg['From'] = self.username # 發(fā)送者賬號(hào)
  #將多個(gè)賬號(hào)'aaa.@qq.com;bbbb@163.com' 以分號(hào)分割,分割為list
  self.recv = self.recv.split(';')
  if isinstance(self.recv, list):
   msg['To'] = ','.join(self.recv)
  else:
   msg['To'] = self.recv # 接收者賬號(hào)列表
  if self.username.endswith('qq.com'): #如果發(fā)送者是qq郵箱
   self.smtp = smtplib.SMTP_SSL(self.email_host, port=self.port)
  else:
   self.smtp = smtplib.SMTP(self.email_host, port=self.port)
  #發(fā)送郵件服務(wù)器的對(duì)象
  self.smtp.login(self.username, self.passwd)
  try:
   self.smtp.sendmail(self.username, self.recv, msg.as_string())
  except Exception as e:
   print('出錯(cuò)了。。', e)
  else:
   print('發(fā)送成功!')
  self.smtp.quit()

if __name__ == '__main__':
 m = SendMail(
  username='zzzzz@163.com', passwd='xxxxxxx',file='a.txt', recv='xxxxxx@qq.com;xxxxxx@qq.com',
  title='多個(gè)收件人', content='哈哈哈啊哈哈哈哈', email_host='smtp.163.com', port=25
 )
 m.send_ma

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python推導(dǎo)式使用詳情

    Python推導(dǎo)式使用詳情

    這篇文章主要介紹了Python推導(dǎo)式使用詳情,推導(dǎo)式是?for?循環(huán)的簡(jiǎn)化使用方法,使用推導(dǎo)式,將一個(gè)可迭代對(duì)象中的數(shù)據(jù)遍歷到某一個(gè)容器當(dāng)中,下面文章詳細(xì)介紹需要的小伙伴可以參考一下
    2022-05-05
  • Python3中FuzzyWuzzy庫(kù)實(shí)例用法

    Python3中FuzzyWuzzy庫(kù)實(shí)例用法

    在本篇文章中小編給各位整理了關(guān)于Python3z中FuzzyWuzzy庫(kù)實(shí)例用法及相關(guān)代碼,有興趣的朋友們可以參考下。
    2020-11-11
  • 如何用python合并多個(gè)有規(guī)則命名的nc文件

    如何用python合并多個(gè)有規(guī)則命名的nc文件

    在地學(xué)領(lǐng)域,nc格式的文件可謂隨處可見(jiàn),這種文件可以存儲(chǔ)多維數(shù)字矩陣,下面這篇文章主要給大家介紹了關(guān)于如何用python合并多個(gè)有規(guī)則命名的nc文件的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Python?Anaconda以及Pip配置清華鏡像源代碼示例

    Python?Anaconda以及Pip配置清華鏡像源代碼示例

    Anaconda指的是一個(gè)開(kāi)源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),下面這篇文章主要給大家介紹了關(guān)于Python?Anaconda以及Pip配置清華鏡像源的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 如何解決Keras載入mnist數(shù)據(jù)集出錯(cuò)的問(wèn)題

    如何解決Keras載入mnist數(shù)據(jù)集出錯(cuò)的問(wèn)題

    這篇文章主要介紹了解決Keras載入mnist數(shù)據(jù)集出錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python使用urllib2模塊抓取HTML頁(yè)面資源的實(shí)例分享

    Python使用urllib2模塊抓取HTML頁(yè)面資源的實(shí)例分享

    這篇文章主要介紹了Python使用urllib2模塊抓取HTML頁(yè)面資源的實(shí)例分享,將要抓取的頁(yè)面地址寫(xiě)在單獨(dú)的規(guī)則列表中方便組織和重復(fù)使用,需要的朋友可以參考下
    2016-05-05
  • pandas多級(jí)分組實(shí)現(xiàn)排序的方法

    pandas多級(jí)分組實(shí)現(xiàn)排序的方法

    下面小編就為大家分享一篇pandas多級(jí)分組實(shí)現(xiàn)排序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python numpy 矩陣堆疊實(shí)例

    python numpy 矩陣堆疊實(shí)例

    今天小編就為大家分享一篇python numpy 矩陣堆疊實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 帶你了解Python妙開(kāi)根號(hào)的三種方式

    帶你了解Python妙開(kāi)根號(hào)的三種方式

    這篇文章主要為大家介紹了Python妙開(kāi)根號(hào)的三種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python代碼中引用已經(jīng)寫(xiě)好的模塊、方法的兩種方式

    Python代碼中引用已經(jīng)寫(xiě)好的模塊、方法的兩種方式

    這篇文章主要介紹了Python代碼中引用已經(jīng)寫(xiě)好的模塊、方法,下面就介紹兩種方式,可以簡(jiǎn)潔明了地調(diào)用自己在其他模塊寫(xiě)的代碼,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

横山县| 兴义市| 临颍县| 松江区| 武隆县| 钦州市| 朝阳市| 茶陵县| 磐安县| 沭阳县| 合作市| 孝感市| 通河县| 什邡市| 左云县| 沂源县| 东宁县| 南平市| 兴业县| 安化县| 将乐县| 津南区| 汶川县| 济南市| 南城县| 浠水县| 新和县| 绥中县| 奉新县| 云南省| 乐清市| 新民市| 浑源县| 新龙县| 百色市| 宁明县| 西峡县| 北宁市| 德安县| 神木县| 金坛市|