有時我們需要程式在執行出現問題時傳送郵件通知我們,在這裡寫了乙個使用qq傳送的python指令碼,也是綜合了網上的資源(然而網上的案例好像都不能用…)搞得,當然只要把主機埠啥的改一下就能使用其他郵箱了,**如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mimetext import mimetext
from email.utils import formatdate
from email.header import header
import sys
# 解決中文問題
reload(sys)
sys.setdefaultencoding('utf8')
defsend_qq_email
(msg):
# 傳送郵件的相關資訊,根據實際情況填寫
# 郵箱smtp主機位址
smtphost = 'smtp.qq.com'
# 郵箱的埠
smtpport = '25'
# ssl的埠號
sslport = '465'
# 傳送方的郵件位址
frommail = '你的qq郵箱'
# 接收方的郵件位址
tomail = '你的目的郵箱'
# 使用者名稱
username = '使用者名稱'
# 密碼\授權碼
password = '授權碼'
# 郵件標題和內容
subject = u'郵件標題'
body = msg
# 初始化郵件
encoding = 'utf-8'
mail = mimetext(body.encode(encoding), 'plain', encoding)
mail['subject'] = header(subject, encoding)
mail['from'] = frommail
mail['to'] = tomail
mail['date'] = formatdate()
try:
# 連線smtp伺服器,明文/ssl/tls三種方式,根據你使用的smtp支援情況選擇一種
# 普通方式,通訊過程不加密
# smtp = smtplib.smtp(smtphost,smtpport)
# smtp.ehlo()
# smtp.login(username,password)
# tls加密方式,通訊過程加密,郵件資料安全,使用正常的smtp埠
# smtp = smtplib.smtp(smtphost,smtpport)
# smtp.ehlo()
# smtp.starttls()
# smtp.ehlo()
# smtp.login(username,password)
# 純粹的ssl加密方式,通訊過程加密,郵件資料安全
smtp = smtplib.smtp_ssl(smtphost, sslport)
smtp.ehlo()
smtp.login(username, password)
# 傳送郵件
smtp.sendmail(frommail, tomail, mail.as_string())
smtp.close()
print
'ok'
except exception:
print
'error: unable to send email'
注意到這裡有乙個授權碼
# 密碼\授權碼
password = '授權碼'
它不是密碼,是qq郵箱授權其他人使用它的郵箱埠的授權碼,獲取方式:登入qq郵箱-》設定-》賬戶
在這裡開啟pop3和imap等服務,可以獲得授權碼
python 實現傳送郵件
可採用email模組傳送電子郵件附件。傳送乙個未知mime型別的檔案附件其基本思路如下 1.構造mimemultipart物件做為根容器 2.構造mimetext物件做為郵件顯示內容並附加到根容器 3.構造mimebase物件做為檔案附件內容並附加到根容器 a.讀入檔案內容並格式化 b.設定附件頭 ...
Python實現傳送郵件
coding utf 8 引入相關的模組 import smtplib from email.mime.text import mimetext from email.mime.image import mimeimage from email.header import header from e...
python傳送郵件實現
send mail python 傳送郵件的模組 usr bin env python coding utf 8 匯入smtplib和mimetext import smtplib from email.mime.text import mimetext 要發給誰 mailto list qq.co...