中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python基于SMTP協議發送郵件

發布時間:2020-09-15 15:25:00 來源:腳本之家 閱讀:156 作者:CarolLXW 欄目:開發技術

本文實例為大家分享了python基于SMTP協議發送郵件的具體代碼,供大家參考,具體內容如下

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

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


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

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

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

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

 # 一共三個參數,第一個為發送文本信息,第二個發送類型,第三個發送信息的編碼。如果想要發送html類型的信息,僅需要修改第二個參數'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:
  # 因為現在很多服務商做了安全驗證,所有在發送郵件的時候需要把原來的smtplib.SMTP()改成現在的smtplib.SMTP_SSL()方式
  smtpObj = smtplib.SMTP_SSL()
  # 鏈接郵件服務器
  smtpObj.connect(mail_host, mail_port)
  # 登錄郵件系統
  smtpObj.login(mail_user, mail_pass)
  # 發送郵件信息
  smtpObj.sendmail(sender,receivers,message.as_string())
  print "郵件發送成功"
 except Exception as e:
  print("郵件發送失敗,錯誤信息:" + str(e))


if __name__ == '__main__':
 sendMail()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉川市| 临澧县| 新平| 斗六市| 木里| 延长县| 威信县| 文昌市| 奉贤区| 蓬安县| 通渭县| 常山县| 台安县| 石棉县| 会泽县| 浦北县| 墨玉县| 临洮县| 博罗县| 府谷县| 苗栗县| 赤峰市| 自贡市| 龙州县| 新乐市| 武宣县| 济宁市| 石家庄市| 黄骅市| 侯马市| 镇康县| 马边| 宁乡县| 紫金县| 报价| 宁陵县| 湾仔区| 盐亭县| 莱州市| 普洱| 聊城市|