利用python傳送郵件技術解析

2021-09-03 02:23:35 字數 4226 閱讀 4092

(1)smtplib模組

import smtplib

smtp=smtplib.smtp()

smtp.connect('smtp.163.com,25')

smtp.login(username,password)

smtp.sendmail(sender,receiver,msg.as_string())

smtp.quit()

簡單說明:

(2)email模組

2.1 text說明

2.2 image說明

要把嵌入到**中,我們只需要按照傳送附件的方式,先把郵件作為附件新增進去,然後再html中通過引用src="cid:0"就可以把附件作為嵌入了。如果有多個,給它們依次編號,然後引用不同的cid:x即可。

msg.attach(mimetext('' +

'' + '

', 'html', 'utf-8'))

sendimagefile=open(r』d:\pythontest\testimage.png』,『rb』).read()

image = mimeimage(sendimagefile)

image.add_header(『content-id』,』』)

2.3 multpart說明

2.4 加密smtp

使用標準的25埠鏈結smtp伺服器時,使用的是明文傳輸,傳送郵件的整個過程可能會被監聽,要更安全地傳送郵件,可以加密smtp會話,實際上就是先建立ssl安全連線,然後再使用smtp協議傳送郵件

某些郵件服務商,例如gmail,提供的smtp服務必須要加密傳輸,(gmail的smtp埠號是587)如下:

smtp_server = 『smtp.gmail.com』

smtp_port = 587

server = smtplib.smtp(smtp_server, smtp_port)

server.starttls()

#剩下的**和前面的一模一樣:

server.set_debuglevel(1)

只要在建立smtp物件後,立刻呼叫starttls()方法,就建立了安全連線,後面的**和其餘的傳送郵件的**一樣。

import smtplib

from email.mime.text import mimetext

mail_host="smtp.163.com"

mail_user="你的郵箱賬號"

mail_pass="郵箱登入授權碼"

sender="傳送者郵箱"

receivers=["收件人郵箱"]

content="python測試傳送郵件2333"

title="測試郵件"

message=mimetext(content,"plain","utf-8")

message["from"]="{}".format(sender)

message["to"]=",".join(receivers)

message["subject"]=title

try:

smtpobj=smtplib.smtp_ssl(mail_host,465)

smtpobj.login(mail_user,mail_pass)

smtpobj.sendmail(sender,receivers,message.as_string())

print("傳送成功")

except smtplib.smtpexception as e:

print(e)

import smtplib

from email.mime.text import mimetext

from email.mime.multipart import mimemultipart

from email.header import header

mail_host="smtp.163.com"

mail_user="你的郵箱賬號"

mail_pass="你的郵箱登入授權碼"

sender="傳送者郵箱賬號"

receivers=["收件人郵箱賬號"]#可以是乙個列表

#建立乙個帶附件的例項

content="郵件正文,用於測試帶附件的郵件傳送"

title="測試郵件"

message=mimemultipart()

message.attach(mimetext(content,"plain","utf-8"))

message["from"]="{}".format(sender)

message["to"]=",".join(receivers)

message["subject"]=title

#構造附件一,傳送乙個txt檔案

att1=mimetext(open("f:/pachong/b/aaa.txt","rb").read(),"base64","utf-8")

att1["content-disposition"]='attachment;filename="aaa.txt"'

message.attach(att1)

#構造附件二,傳送乙個word檔案

att2=mimetext(open("f:/pachong/b/bbb.docx","rb").read(),"base64","utf-8")

att2["content-disposition"]='attachment;filename="bbb.docx"'

message.attach(att2)

try:

smtpobj=smtplib.smtp_ssl(mail_host,465)

smtpobj.login(mail_user,mail_pass)

smtpobj.sendmail(sender,receivers,message.as_string())

print("傳送成功")

except smtplib.smtpexception as e:

print(e)

import smtplib

from email.mime.text import mimetext

from email.header import header

from smtplib import smtp_ssl

from email.mime.image import mimeimage

from email.mime.multipart import mimemultipart

from email.mime.text import mimetext

mail_host='smtp.163.com'

mail_user="你的郵箱賬號"

mail_pass="郵箱授權碼"

sender="你的郵箱賬號"

receivers=["收件人1" , "收件人2"]

mail_title='我是郵件標題'

msg=mimemultipart('related')

msg['subject']=header(mail_title,'utf-8')

msg['from']=sender

msg['to']=header("接收測試者",'utf-8') #接收者的別名

msgalternative=mimemultipart("alternative")

msg.attach(msgalternative)

mail_body="""

你好,這是乙份測試python自動傳送郵件的郵件

這個郵件是html中新增的測試郵件

img src="cid:send_image")

')msg.attach(msgimage)

#ssl登入

try:

smtpobj=smtplib.smtp_ssl(mail_host,465)

smtpobj.login(mail_user,mail_pass)

smtpobj.sendmail(sender,receivers,msg.as_string())

smtpobj.quit()

print("傳送成功")

except smtplib.smtpexception as e:

print(e)

利用python 批量傳送郵件

這個 的主要作用是可以 批量傳送郵件,且免登入郵箱。smtp mail transfer protocol 即簡單郵件傳輸協議,它是一組用於由源位址到目的位址傳送郵件的規則,由它來控制信件的中轉方式。python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議進行了簡單的封裝。s...

利用CDO Message傳送郵件

由於公司把 從自己的伺服器上移到了gd的asp空間上,gd的空間又不支援gmail,找了很多的資料。才找到下面這個發郵件的 經測試,完全可用 mymail.subject 郵件標題 dim content content 郵件主體 mymail.htmlbody content response.w...

利用Web傳送郵件

方法一 using system.web.mail system.web.mail.mailmessage myemail new system.web.mail.mailmessage myemail.from email 163.myemail.to email 163.myemail.subj...