欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python基于SMTP協(xié)議發(fā)送郵件

 更新時(shí)間:2019年05月31日 08:33:28   作者:CarolLXW  
這篇文章主要為大家詳細(xì)介紹了python基于SMTP協(xié)議發(fā)送郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python基于SMTP協(xié)議發(fā)送郵件的具體代碼,供大家參考,具體內(nèi)容如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
 @Time : 2018/5/31
 @Author : LiuXueWen
 @Site : 
 @File : sendEmail.py
 @Software: PyCharm
 @Description: 使用SMTP協(xié)議發(fā)送郵件,支持同時(shí)發(fā)送給多個(gè)地址,支持同時(shí)發(fā)送文本信息、超文本信息和多附件
"""
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import os

class properties():
 # 設(shè)置服務(wù)器, "smtp.xx.com"
 mail_host = "smtp.qq.com"
 # 用戶名
 mail_user = "@qq.com"
 # 口令
 mail_pass = ""
 # smtp服務(wù)器端口,每個(gè)服務(wù)商提供的郵件服務(wù)端口可能不一致,465是騰訊的端口
 mail_port = 465
 # 發(fā)送郵件的地址
 sender = "@vip.qq.com"
 # 接收郵件,可設(shè)置為你的QQ郵箱或者其他郵箱,list類型,可同時(shí)填寫(xiě)多個(gè)地址并以,分割
 receivers = "@qq.com","@qq.com"
 # 郵件發(fā)送的內(nèi)容
 messageText = "測(cè)試使用\n"
 # 郵件發(fā)送的超文本內(nèi)容
 messageHTML = """
     <!DOCTYPE html>
     <html lang="en">
     <head>
      <meta charset="UTF-8">
      <title>test</title>
     </head>
     <body>
      <img src="http://a.hiphotos.baidu.com/image/pic/item/730e0cf3d7ca7bcb6a172486b2096b63f624a82f.jpg" alt="test" width="200px" height="200px">
     </body>
     </html>
    """
 # 發(fā)送郵件方的別名展示(類似昵稱),為空則顯示發(fā)件方地址
 messageFromHeader = ""
 # 接收郵件方的展示信息
 messageToHeader = "test python"
 # 郵件主題
 messageSubject = "ceshiceshi123"
 # 需要發(fā)送的附件的詳細(xì)地址,支持多附件發(fā)送,附件之間以,分割
 filePaths = '1.txt','2.txt','3.txt'


def sendMail():
 # 下面所有參數(shù)均可通過(guò)配置文件配置獲取
 """
  :param mail_host: 設(shè)置服務(wù)器,"smtp.xx.com"
  :param mail_user: 用戶名
  :param mail_pass: 口令
  :param sender: 發(fā)送郵件的地址
  :param receivers: 接收郵件,可設(shè)置為你的QQ郵箱或者其他郵箱
  :param messageText: 郵件發(fā)送的文本內(nèi)容
  :param messageHTML: 郵件發(fā)送的超文本內(nèi)容
  :param messageFromHeader: 發(fā)送郵件方的別名展示(類似昵稱)
  :param messageToHeader: 接收郵件方的展示信息
  :param messageSubject: 郵件主題
  :param filePath: 附件詳細(xì)地址
  :return:
 """
 # 需要獲取的參數(shù)列
 mail_host = properties.mail_host
 mail_user = properties.mail_user
 mail_pass = properties.mail_pass
 mail_port = properties.mail_port
 sender = properties.sender
 receivers = properties.receivers
 messageText = properties.messageText
 messageHTML = properties.messageHTML
 messageFromHeader = properties.messageFromHeader
 # 如果發(fā)件人昵稱未填寫(xiě)則直接使用發(fā)件人地址作為名稱
 if messageFromHeader == "":
  messageFromHeader = sender
 messageToHeader = properties.messageToHeader
 messageSubject = properties.messageSubject
 filePaths = properties.filePaths

 # 郵件類型為"multipart/alternative"的郵件包括純文本正文(text / plain)和超文本正文(text / html)。
 # 郵件類型為"multipart/related"的郵件正文中包括圖片,聲音等內(nèi)嵌資源。
 # 郵件類型為"multipart/mixed"的郵件包含附件。向上兼容,如果一個(gè)郵件有純文本正文,超文本正文,內(nèi)嵌資源,附件,則選擇mixed類型。
 message = MIMEMultipart('mixed')

 # 郵件顯示信息內(nèi)容
 # 發(fā)送郵件方的頭部展示信息
 message['From'] = Header(messageFromHeader, 'utf-8')
 # 接收郵件方的展示信息
 message['To'] = Header(messageToHeader, 'utf-8')
 # 郵件主題
 message['Subject'] = Header(messageSubject, 'utf-8')

 try:
  # 發(fā)送郵件附件,支持多附件發(fā)送
  for filePath in filePaths:
   messageFile = open(filePath, 'rb').read()
   message_file = MIMEText(messageFile, 'base64', 'utf-8')
   message["Content-Type"] = 'application/octet-stream'
   # 目前發(fā)送附件不能使用message_file["Content-Disposition"] = 'attachment; filename="aaa.txt"'方式發(fā)送信息
   message_file.add_header('Content-Disposition', 'attachment', filename=os.path.basename(filePath))
   # 附件內(nèi)容
   message.attach(message_file)
 except Exception as e:
  print "附件發(fā)送失?。? + str(e)

 # 一共三個(gè)參數(shù),第一個(gè)為發(fā)送文本信息,第二個(gè)發(fā)送類型,第三個(gè)發(fā)送信息的編碼。如果想要發(fā)送html類型的信息,僅需要修改第二個(gè)參數(shù)'plain'為'html'即可
 # 文本信息,使用‘plain'屬性不能正常顯示
 message_text = MIMEText(messageText, 'html', 'utf-8')
 message.attach(message_text)

 # 超文本信息
 message_html = MIMEText(messageHTML, 'html', 'utf-8')
 message.attach(message_html)


 try:
  # 因?yàn)楝F(xiàn)在很多服務(wù)商做了安全驗(yàn)證,所有在發(fā)送郵件的時(shí)候需要把原來(lái)的smtplib.SMTP()改成現(xiàn)在的smtplib.SMTP_SSL()方式
  smtpObj = smtplib.SMTP_SSL()
  # 鏈接郵件服務(wù)器
  smtpObj.connect(mail_host, mail_port)
  # 登錄郵件系統(tǒng)
  smtpObj.login(mail_user, mail_pass)
  # 發(fā)送郵件信息
  smtpObj.sendmail(sender,receivers,message.as_string())
  print "郵件發(fā)送成功"
 except Exception as e:
  print("郵件發(fā)送失敗,錯(cuò)誤信息:" + str(e))


if __name__ == '__main__':
 sendMail()

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

相關(guān)文章

  • python實(shí)現(xiàn)單目標(biāo)、多目標(biāo)、多尺度、自定義特征的KCF跟蹤算法(實(shí)例代碼)

    python實(shí)現(xiàn)單目標(biāo)、多目標(biāo)、多尺度、自定義特征的KCF跟蹤算法(實(shí)例代碼)

    這篇文章主要介紹了python實(shí)現(xiàn)單目標(biāo)、多目標(biāo)、多尺度、自定義特征的KCF跟蹤算法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python安裝Numpy和matplotlib的方法(推薦)

    Python安裝Numpy和matplotlib的方法(推薦)

    下面小編就為大家?guī)?lái)一篇Python安裝Numpy和matplotlib的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法

    Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法

    這篇文章主要介紹了Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python如何實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音

    Python如何實(shí)現(xiàn)文本轉(zhuǎn)語(yǔ)音

    文本轉(zhuǎn)語(yǔ)音,一般會(huì)用在無(wú)障礙開(kāi)發(fā)。下面介紹如何使用Python實(shí)現(xiàn)將文本文件轉(zhuǎn)換成語(yǔ)音輸出。跟著小編一起來(lái)看看吧。
    2016-08-08
  • 使用Python解析JSON數(shù)據(jù)的基本方法

    使用Python解析JSON數(shù)據(jù)的基本方法

    這篇文章主要介紹了使用Python解析JSON數(shù)據(jù)的基本方法,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Windows 64位下python3安裝nltk模塊

    Windows 64位下python3安裝nltk模塊

    這篇文章主要為大家詳細(xì)介紹了Windows 64位下python3安裝nltk模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python tkinter組件使用詳解

    python tkinter組件使用詳解

    這篇文章主要介紹了python tkinter組件使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python中類變量與成員變量的使用注意點(diǎn)總結(jié)

    python中類變量與成員變量的使用注意點(diǎn)總結(jié)

    python 的類中主要會(huì)使用的兩種變量:類變量與成員變量。類變量是類所有實(shí)例化對(duì)象共有的,而成員變量是每個(gè)實(shí)例化對(duì)象自身特有的。下面這篇文章主要給大家介紹了在python中類變量與成員變量的一些使用注意點(diǎn),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • Python實(shí)現(xiàn)遺傳算法(二進(jìn)制編碼)求函數(shù)最優(yōu)值方式

    Python實(shí)現(xiàn)遺傳算法(二進(jìn)制編碼)求函數(shù)最優(yōu)值方式

    今天小編就為大家分享一篇Python實(shí)現(xiàn)遺傳算法(二進(jìn)制編碼)求函數(shù)最優(yōu)值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python正向最大匹配分詞和逆向最大匹配分詞的實(shí)例

    python正向最大匹配分詞和逆向最大匹配分詞的實(shí)例

    今天小編就為大家分享一篇python正向最大匹配分詞和逆向最大匹配分詞的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11

最新評(píng)論