在用python做一些測試時候,不想一直盯着測試結果。當測試完成或者測試出現問題時候,希望能夠快速提醒自己。這時候給自己發個郵件,手機郵箱就會收到消息。從而實現消息的快速獲取。(本文章同步在公衆號登出:Geekxiaobai)
1. 需要 import 的一些包
2. 發送郵件函數:
目前登錄的郵箱是 163郵箱,親測可用。最好不要用其它的。 接收消息的郵箱可以用qq郵箱。一些細節都在註釋中標明瞭。
3. sendmail("需要發送的內容")
代碼:
#python 郵件
#python3.6
#2018.08,25
#代碼測試成功
import requests, bs4, smtplib
from email.mime.text import MIMEText
from email.header import Header
def sendmail(content):
smtp_server = 'smtp.163.com' #smt.qq.com
fromMail = '********@163.com' #發送消息的郵箱(登錄郵箱)
mailPass = ('*********') #登錄郵箱的登錄密碼
toMail = '*********@qq.com' #接收消息的郵箱
fromName = 'mywork'
subject = "python Email" #主題不能爲test,否則報錯554 DT:SPM
#mail = [
# 'From: %s <%s>' % (fromName, fromMail),
# 'To: %s' % ','.join(toMail),
# '',
# content
# ]
#mail = '\n'.join(mail)
msg = MIMEText(content)
msg['Subject'] = subject
msg['From'] = fromMail
msg['To'] = toMail
try:
s = smtplib.SMTP()
print('***正在連接服務器...')
s.connect(smtp_server)
s = smtplib.SMTP_SSL('smtp.163.com', 465)
print('***正在登錄...')
s.login(fromMail, mailPass)
print('***sending...')
s.sendmail(fromMail, toMail, msg.as_string()) #msg.as_string()
print('*****send Sucess!***')
s.quit()
except Exception as e:
print('**** error---- ' + str(e))
if __name__ == '__main__':
sendmail(' sucess!,Have Fun!')
print('Done')
#s.quit()
總結:
親測可用,郵件內容不要太少,否則可能被當做垃圾郵件。最後如果沒有收到郵件,在垃圾郵件裏面看看,可能被當做垃圾郵件處理掉了。