1. 程式人生 > >48. Python 發郵件(1)

48. Python 發郵件(1)

fff nds htm tar 服務 .com term world strip

python發送郵件

1.通過python發郵件步驟:

前提:開通了第三方授權,可以使用smtp服務

1.創建smtp對象

2.連接smtp服務器,默認端口號都是25

3.登陸自己的郵箱賬號

4.調用發送消息函數,參數:發件人、收件人、消息內容

5.關閉連接


2.郵件消息註冊:

首先創建一個消息對象:

msg = email.mime.multipart.MIMEMultipart() #通過這個類創建消息

msg['from'] = '[email protected]'

msg['to'] = '[email protected];[email protected];[email protected]'

msg['subject'] = 'aji111‘

分別指明郵件的發件人,收件, 只代表顯示的問題,如下圖:

技術分享圖片


3.消息內容:

首先,先定義一個字符串,來表示你得消息內容:

context= ‘’’hello world’’’ ## 正文

txt = email.mime.text.MIMEText(_text=content, _subtype="html") ## 定義文本以後,標明將context指定成什麽格式,html,txt

msg.attach(txt) ## 再註冊到消息中

_subtype 這個參數就決定了,你是以html解析的形式去發送,還是以text的形式去發送。



準備文件:

(1)測試配置文件:

文件1:message.conf (配置文件)

From = [email protected]
To = [email protected],[email protected],[email protected],[email protected],[email protected]
Subject = '測試郵件'
message = '''大家好:
測試郵件
測試郵件
以上
謝謝
'''


(2)讀取文件conf文件工具,並測試

文件2:util.py (工具文件)

import codecs
import re

fileName = "message.conf"

def getProperty(property):
    with codecs.open(fileName, encoding="utf-8") as f:
        if property != "message":
            for line in f.readlines():
                if line.startswith("{0} = ".format(property)):
                    value = line.split("{0} = ".format(property))[1]
                    print value.strip('\n')
                    return value.strip('\n')

        else:
            reg = re.compile(r"message = '''((.*\n)*)'''")
            result = reg.findall(f.read())
            print result[0][0]
            return  result[0][0]

getProperty("From")
getProperty("To")
getProperty("Subject")
getProperty("message")

文件2 調用 文件1 的參數,獲得到對應的值,測試結果如圖:

技術分享圖片

測試完成後,註銷輸出信息和調用函數

技術分享圖片


(3)發送郵件腳本

3.文件:sendtext.py (郵件腳本文件)

import email.mime.multipart
import email.mime.text
import email.header
from util import getProperty
import smtplib

#消息內容
msg = email.mime.multipart.MIMEMultipart()
sendFrom = getProperty("From")
sendTo = getProperty("To")
sendSubject = getProperty("Subject")
sendMessage = getProperty("message")

msg["From"] = sendFrom
msg["To"] = sendTo
msg['Subject'] = email.header.Header(sendSubject)

text = email.mime.text.MIMEText(sendMessage, 'plain', 'utf-8')
msg.attach(text)

#發送
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtp.login('[email protected]', 'xrusbcaae')
smtp.sendmail(sendFrom, sendTo.split(","), msg.as_string())
smtp.quit()

執行發送郵件:

技術分享圖片

48. Python 發郵件(1)