python 實現傳送郵件

2021-06-19 14:30:00 字數 1773 閱讀 4799

可採用email模組傳送電子郵件附件。傳送乙個未知mime型別的檔案附件其基本思路如下:

1. 構造mimemultipart物件做為根容器

2. 構造mimetext物件做為郵件顯示內容並附加到根容器

3. 構造mimebase物件做為檔案附件內容並附加到根容器

a. 讀入檔案內容並格式化

b. 設定附件頭

4. 設定根容器屬性

5. 得到格式化後的完整文字

6. 用smtp傳送郵件

具體內容參見14章第6節 「email: parsing and composing mails」。傳送乙個未知mime型別的檔案附件例項**如下:

import smtplib

import email.mimemultipart

import email.mimetext

import email.mimebase

import os.path

from = "sender address"

to = "recipients"

file_name = "file name"

server = smtplib.smtp("smtp server address")

server.login("username","password") #僅smtp伺服器需要驗證時

# 構造mimemultipart物件做為根容器

main_msg = email.mimemultipart.mimemultipart()

# 構造mimetext物件做為郵件顯示內容並附加到根容器

text_msg = email.mimetext.mimetext("this is a test text to text mime")

main_msg.attach(text_msg)

# 構造mimebase物件做為檔案附件內容並附加到根容器

maintype, subtype = contype.split('/', 1)

## 讀入檔案內容並格式化

data = open(file_name, 'rb')

file_msg = email.mimebase.mimebase(maintype, subtype)

file_msg.set_payload(data.read( ))

data.close( )

email.encoders.encode_base64(file_msg)

## 設定附件頭

basename = os.path.basename(file_name)

file_msg.add_header('content-disposition',

'attachment', filename = basename)

main_msg.attach(file_msg)

# 設定根容器屬性

main_msg['from'] = from

main_msg['to'] = to

main_msg['subject'] = "attach test "

main_msg['date'] = email.utils.formatdate( )

# 得到格式化後的完整文字

fulltext = main_msg.as_string( )

# 用smtp傳送郵件

try:

server.sendmail(from, to, fulltext)

finally:

server.quit()

python實現傳送郵件

有時我們需要程式在執行出現問題時傳送郵件通知我們,在這裡寫了乙個使用qq傳送的python指令碼,也是綜合了網上的資源 然而網上的案例好像都不能用 搞得,當然只要把主機埠啥的改一下就能使用其他郵箱了,如下 usr bin python coding utf 8 import smtplib from...

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...