python傳送帶附件郵件

2021-08-10 07:12:40 字數 2631 閱讀 3595

1. 不包括附件的郵件

#coding:utf-8

import smtplib

import string

# 傳送普通的文字郵件

# 郵件smtp的位址

host = 'smtp.163.com'

# 定義郵件的標題

subject = '這是郵件標題'

# 發件人

from = '***@163.com'

# 收件人

to = '***@qq.com'

# 傳送的郵件文字內容

text = '這是一封測試郵件,由發出'

# 構建郵件內容

# from 發件人 to 收件人 subject 郵件標題 郵件內容

# split:將字串根據某些字元分割成列表

# join:把列表中的所有元素根據某個字元進行拼接

msg_content = string.join(['from:%s'%from,'to:%s'%to,'subject:%s'%subject,'',text],"\r\n")

# 構造smtp服務物件,可以在構造物件時將host和port傳入,可以直接連線伺服器

smtp_server = smtplib.smtp()

# 開啟傳送debug模式,把傳送郵件的過程顯示出來

smtp_server.set_debuglevel(1)

# 連線郵箱伺服器

smtp_server.connect(host=host,port='25')

# 啟動安全傳輸模式

smtp_server.starttls()

# 登入郵箱伺服器

smtp_server.login(from,'******')

# 傳送郵件

smtp_server.sendmail(from_addr=from,to_addrs=to,msg=msg_content)

# 關閉smtp伺服器連線

smtp_server.quit()

2.包括附件的郵件

#coding:utf-8

import smtplib

import email

from email.mime.text import mimetext

from email.mime.multipart import mimemultipart

from email.mime.image import mimeimage

host = 'smtp.163.com'

subject = '帶附件的測試郵件'

from = '***@163.com'

to = '***@qq.com'

# 定義新增附件的函式

def add_image(path,imgid):

data = open(path,'rb')

# 建立mimeimage物件,讀取作為imgdata的資料引數

msg_image = mimeimage(data.read())

# 關閉檔案

data.close()

# 指定檔案的content-id

msg_image.add_header('content-id',imgid)

return msg_image

# 建立要傳送的郵件正文及附件物件

msg = mimemultipart('related')

# 建立乙個用於傳送文字的mimetext物件

msg_text = mimetext('

詳情如下:

msg.attach(msg_text)

# 新增附件

msg.attach(add_image('center.png','zg'))

# 將xls作為附件新增到郵件中

# 建立mimetext物件,儲存xls檔案

attach = mimetext(open(u'內涵段子.xls','rb').read(),'base64','utf-8')

# 指定當前檔案格式型別

# gb18030 qq郵箱中使用的是gb18030編碼,防止出現中文亂碼

attach['content-disposition'] = 'attachment;filename="內涵段子.xls"'.decode('utf-8').encode('gb18030')

# 把附件新增到msg中

msg.attach(attach)

# 設定必要請求頭資訊

msg['from'] = from

msg['to'] = to

msg['subject'] = subject

# 傳送郵件

smtp_server = smtplib.smtp()

smtp_server.set_debuglevel(1)

smtp_server.connect(host,'25')

smtp_server.starttls()

smtp_server.login(from,'***')

smtp_server.sendmail(from,to,msg.as_string())

smtp_server.quit()

Python 傳送帶附件的郵件

usr bin python3 import smtplib from email.mime.text import mimetext from email.mime.multipart import mimemultipart from email.header import header sen...

python傳送帶附件的郵件

coding utf8 import os,smtplib from email.mime.multipart import mimemultipart from email.mime.text import mimetext from email.header import header clas...

python 傳送郵件帶附件 封裝

usr bin python coding utf 8 import smtplib smtplib這個模組是管發郵件 from email.mime.text import mimetext 構造郵件內容 from email.mime.multipart import mimemultipart...