python教程廖雪峰云,python發送郵件廖雪峰_使用python發送郵件(一)

 2023-12-10 阅读 36 评论 0

摘要:使用python來進行發郵件 想做個可以發郵件的程序。。。。最好是自動發郵件。這就是我今晚的目的,所以我今晚上就來進行學習了。主要還是來參考大神的博客。 我主要是參考他的網站,小白一個沒有經驗算是現學現賣了,廢話不多說現在進入主題 (1ÿ

使用python來進行發郵件

想做個可以發郵件的程序。。。。最好是自動發郵件。這就是我今晚的目的,所以我今晚上就來進行學習了。主要還是來參考大神的博客。

我主要是參考他的網站,小白一個沒有經驗算是現學現賣了,廢話不多說現在進入主題

(1)發送純文本文件

python對smtp支持有兩個模塊,一個是email和smtplib兩個模塊,email負責構造文件,smtplib負責發送文件,首先構造一個純文本文件

python教程廖雪峰云?1 from email.mime.text importMIMEText2

3 msg=MIMEText("hello world",'plain','utf-8')

這樣我們使用email構造了一個純文本的郵件內容,其中“helloworld是編碼內容,plain表示的是純文本內容,還有一種的html格式的,"utf-8"是編碼方式

然后我們將使用smtp發送出去

#-*- coding: utf-8 -*-#練習使用發送郵件#Time:2018-8-24

from email.mime.text importMIMETextimportsmtplib

python 自動發郵件。msg=MIMEText("hello world",'plain','utf-8')

from_addr=input("賬號:")

password=input,("密碼:")

to_addr=input("發送賬號:")

smtp_server=input("服務器地址:")#導入smtplib,這是負責發送郵件模塊

server=smtplib.SMTP(smtp_server,25) #端口號25

pycharm和python區別,server.set_debuglevel(1)

server.login(from_addr,password)

server.sendmail(from_addr,[to_addr],msg.as_string())

server.quit()

這是因為郵件主題、如何顯示發件人、收件人等信息并不是通過SMTP協議發給MTA,而是包含在發給MTA的文本中的,所以,我們必須把From、To和Subject添加到MIMEText中,才是一封完整的郵件:

這是一個純文本文件,但是一般情況下是發送不成功的,我試過用網易的郵箱給qq的郵箱發送郵件,就沒有成功,原因是服務器當作垃圾郵件攔截了,畢竟我們這個郵件沒有標題,發送人等信息,這樣的話會被攔截,所以接下來將一個可以發送成功的例子:

python郵件、(2)可以發送帶有標題的郵件

1 #-*- coding: utf-8 -*-

2 #練習使用發送郵件

3 #Time:2018-8-24

4 from email.mime.text importMIMEText5 from email.header importHeader6 from email.mime.text importMIMEText7 from email.utils importparseaddr,formataddr8 importsmtplib9 def_format_addr(s):10 #來解析地址

11 name,addr=parseaddr(s)12 return formataddr((Header(name,'utf-8').encode(),addr))13

python能做什么、14 from_addr=input("from_addr:")15 password=input("password")16 to_addr=input("to_addr")17 smtp_server=input("server_addr:like...")18 msg=MIMEText("hello world",'plain','utf-8')19 msg['From']=_format_addr("python初學者 <%s>" %from_addr)20 msg['To']=_format_addr("管理員 <%s>" %to_addr)21 msg['Subject']=Header('標題來自我的問候','utf-8').encode() #含有中文的涉及編碼問題

22

23

24 #導入smtplib,這是負責發送郵件模塊

25 server=smtplib.SMTP(smtp_server,25) #端口號25

26 server.set_debuglevel(1)27 server.login(from_addr,password)28 server.sendmail(from_addr,[to_addr],msg.as_string())29 server.quit()

發送郵件C語言。理論上可以發送成功,這里需要注意一點,這個登陸密碼不是你的郵箱的登陸密碼,而是你郵箱的第三方授權碼,這個要開通才可以登陸成功

(3)想做一個帶附件的,好吧,繼續努力

發送附件,如果想發送附件怎么辦呢?帶附件 的郵件可以看成,郵件本身,和附件。所以,我們構造一個MIMEMulitple對象,然后添加MIMEText最為郵件正文,然后再添加MIMEBase作為附件 。且看代碼:

1 #-*- coding: utf-8 -*-

2 #練習使用發送郵件

3 #Time:2018-8-24

python3、4 from email.mime.text importMIMEText5 from email.header importHeader6 from email.mime.text importMIMEText7 from email.mime.multipart importMIMEMultipart8 from email.mime.base importMIMEBase9 from email.utils importparseaddr,formataddr10 from email importencoders11 importsmtplib12 def_format_addr(s):13 #來解析地址

14 name,addr=parseaddr(s)15 return formataddr((Header(name,'utf-8').encode(),addr))16

17 from_addr="111111@163.com"

18 password="111111S"

19 to_addr="11111@qq.com"

20 smtp_server="smtp.163.com"

python發送html郵件、21

22 msg=MIMEMultipart()23 #郵件正文

24 text=MIMEText("hello world",'plain','utf-8')25 msg.attach(text)26 msg['From']=_format_addr("python初學者 <%s>" %from_addr)27 msg['To']=_format_addr("管理員 <%s>" %to_addr)28 msg['Subject']=Header('標題來自我的問候','utf-8').encode() #含有中文的涉及編碼問題

29 #郵件附件

30 #添加附件就是添加MIMEBase 從本地讀取一個圖片

31 pathName = "C:/Users/sunchongwei/Pictures/自然風景/1.jpg"

匿名發送郵件python?32 with open(pathName,'rb') as f:33 #設置附件和文件名

34 mime=MIMEBase('image','jpg',filename='1.jpg')35 #加上必要的頭信息

36 mime.add_header('Content-Disposition', 'attachment', filename='1.jpg')37 mime.add_header('Content-ID','<0>')38 mime.add_header('X-Attachment-Id', '0')39 #把附件的內容讀進來

40 mime.set_payload(f.read())41 encoders.encode_base64(mime)42 msg.attach(mime)43

44 #導入smtplib,這是負責發送郵件模塊

45 server=smtplib.SMTP(smtp_server,25) #端口號25

python通過代理發送郵件。46 server.set_debuglevel(1)47 server.login(from_addr,password)48 server.sendmail(from_addr,[to_addr],msg.as_string())49 server.quit()

(4)通過SSL加密發送

# -*- coding: utf-8 -*-

#練習使用發送郵件

#Time:2018-8-24

from email.mime.text import MIMEText

如何用python發郵件,from email.header import Header

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.mime.base import MIMEBase

from email.utils import parseaddr,formataddr

from email import encoders

python發郵件給多個人,import smtplib

def _format_addr(s):

#來解析地址

name,addr=parseaddr(s)

return formataddr((Header(name,'utf-8').encode(),addr))

from_addr="@163.com"

password=""

to_addr=""

smtp_server="smtp.163.com"

msg=MIMEMultipart()

#郵件正文

text=MIMEText("hello world",'plain','utf-8')

msg.attach(text)

msg['From']=_format_addr("python初學者 <%s>" %from_addr)

msg['To']=_format_addr("管理員 <%s>" %to_addr)

msg['Subject']=Header('標題來自我的問候','utf-8').encode() #含有中文的涉及編碼問題

#郵件附件

#添加附件就是添加MIMEBase 從本地讀取一個圖片

pathName = "C:/Users/sunchongwei/Pictures/自然風景/1.jpg"

with open(pathName,'rb') as f:

#設置附件和文件名

mime=MIMEBase('image','jpg',filename='1.jpg')

#加上必要的頭信息

mime.add_header('Content-Disposition', 'attachment', filename='1.jpg')

mime.add_header('Content-ID','<0>')

mime.add_header('X-Attachment-Id', '0')

#把附件的內容讀進來

mime.set_payload(f.read())

encoders.encode_base64(mime)

msg.attach(mime)

#導入smtplib,這是負責發送郵件模塊

server=smtplib.SMTP_SSL(smtp_server,465) #端口號465

server.set_debuglevel(1)

server.login(from_addr,password)

server.sendmail(from_addr,[to_addr],msg.as_string())

server.quit()

網易的端口號

70

大家都知道的。。。

寫下心情:好不容易哦

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/194338.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息