python實現傳送郵件

2021-07-16 19:25:08 字數 1982 閱讀 2387

有時我們需要程式在執行出現問題時傳送郵件通知我們,在這裡寫了乙個使用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...