金沙棋牌官方平台

当前位置:金沙棋牌 > 金沙棋牌官方平台 > 举例详解Python中smtplib模块处理电子邮件的使用,

举例详解Python中smtplib模块处理电子邮件的使用,

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-08-29 15:57

比方详解Python中smtplib模块管理电子邮件的应用

   那篇小说首要介绍了比方详解Python中smtplib模块管理电子邮件的施用,是Python入门学习中的基础知识,须要的爱人能够参见下

  在遵照网络的施用中,程序日常索要活动地发送电子邮件。如:三个网址的挂号系统会在客户注册时发送一封邮件来认同挂号;当客商忘记登入密码的时候,通过邮件来收复密码。smtplib模块是python中smtp(简单邮件传输合同)的客商端完成。我们能够利用smtplib模块,轻巧的出殡电子邮件。上边包车型客车例子用了不到十行代码来发送电子邮件:

  ?

1

2

3

4

5

6

7

8

9

#coding=gbk

 

import smtplib

 

smtp = smtplib.SMTP()

smtp.connect("smtp.yeah.net", "25")

smtp.login('用户名', '密码')

smtp.sendmail('[email protected]', '[email protected]', 'From: [email protected]/r/nTo: [email protected]/r/nSubject: this is a email from python demo/r/n/r/nJust for test~_~')

smtp.quit()

  这一个例子够轻松吧^_^!下边详细介绍stmplib模块中的类和章程。

  smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])

  SMTP类构造函数,表示与SMTP服务器之间的一连,通过那一个一而再大家得以向smtp服务器发送指令,施行相关操作(如:登录、发送邮件)。该类提供了累累方式,将要上面介绍。它的具备参数都以可选的,当中host参数表示smtp服务器主机名,上边例子中的smtp主机为”smtp.yeah.net”;port表示smtp服务的端口,暗许是25;假诺在创制SMTP对象的时候提供了那八个参数,在开始化的时候会活动调用connect方法去老是服务器。

金沙棋牌官方平台,  smtplib模块还提供了SMTP_SSL类和LMTP类,对它们的操作与SMTP基本一致。

  smtplib.SMTP提供的格局:

  ?

1

SMTP.set_debuglevel(level)

  设置是还是不是为调节和测验格局。默以为False,即非调节和测量检验情势,表示不出口任何调节和测量检验音讯。

  ?

1

SMTP.connect([host[, port]])

  连接受钦赐的smtp服务器。参数分别代表smpt主机和端口。注意: 也得以在host参数中内定端口号(如:smpt.yeah.net:25),那样就没须要给出port参数。

  ?

1

SMTP.docmd(cmd[, argstring])

  向smtp服务器发送指令。可选参数argstring表示指令的参数。下边包车型客车例证完全通过调用docmd方法向服务器发送指令来贯彻邮件的出殡(在smtp.yeah.net邮件服务器上试验通过。其余邮件服务器并未有试过):

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

import smtplib, base64, time

userName = base64.encodestring('from').strip()

password = base64.encodestring('password').strip()

smtp = smtplib.SMTP()

smtp.connect("smtp.yeah.net:25")

print smtp.docmd('helo', 'from')

print smtp.docmd('auth login')

print smtp.docmd(userName)

print smtp.docmd(password)

print smtp.docmd('mail from:', '<[email protected]>')

print smtp.docmd('rcpt to:', '<[email protected]>')

#data 指令表示邮件内容

print smtp.docmd('data')

print smtp.docmd(

'''''from: [email protected]

to: [email protected]

subject: subject

email body

.

'''

)

smtp.quit()

  SMTP.helo([hostname])

  使用”helo”指令向服务器确认身份。也正是告诉smtp服务器“我是哪个人”。

  SMTP.has_extn(name)

  判别钦命名称在服务器邮件列表中是或不是存在。出于安全着想,smtp服务器往往屏蔽了该指令。

  SMTP.verify(address)

  剖断钦命邮件地址是否在服务器中设有。出于安全思索,smtp服务器往往屏蔽了该指令。

  SMTP.login(user, password)

  登录到smtp服务器。今后差相当少全部的smtp服务器,都必得在验证客户音信合法之后才同意发送邮件。

  SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

  发送邮件。这里要留心一下第多少个参数,msg是字符串,表示邮件。大家精晓邮件一般由题目,发信人,收件人,邮件内容,附属类小部件等组合,发送邮件的时候,要留心msg的格式。那几个格式正是smtp公约中定义的格式。在上头的例子中,msg的值为:

  ?

1

2

3

4

5

'''''From: [email protected]

To: [email protected]

Subject: test

 

just for test'''

  这一个字符串的的意思表示邮件发件人为”[email protected]”,收件人为” [email protected]”,邮件标题为”test”,邮件内容为”just for test”。留意的您大概会疑窦:假若要发送的邮件内容很复杂,富含图表、录制、附属类小部件等故事情节,根据MIME的格式来拼接字符串,将是一件特别困苦的事。不用操心,python已经思量到了那一点,它为大家提供了email模块,使用该模块能够轻巧的出殡带图片、录像、附属类小部件等复杂剧情的邮件。在介绍完smtplib模块然后,小编会简要介绍email模块的大旨使用。

  SMTP.quit()

  断开与smtp服务器的连日,相当于发送”quit”指令。

  email及其相关子模块

  emial模块用来管理邮件音讯,饱含MIME和其他依据TiguanFC 2822 的新闻文书档案。使用那么些模块来定义邮件的剧情,是特别轻便的。上边是有些常用的类:

  class email.mime.multipart. MIMEMultipart: 多少个MIME对象的集纳。

  class email.mime.audio. MIME奥迪(Audi)o: MIME音频对象。

  class email.mime.image. MIMEImage: MIME二进制文件对象。

  class email.mime.text. MIMEText: MIME文本对象。

  看上边的表达或许会感觉云里雾里,其实本身对smtp, MIME的理解也很轻描淡写。但在超越二分之一时候,大家假设会用就可以了。上面是三个大约的例子来演示怎么样行使这几个类来发送带附属类小部件的邮件:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#coding=gbk

import smtplib, mimetypes

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.mime.image import MIMEImage

 

msg = MIMEMultipart()

msg['From'] = "[email protected]"

msg['To'] = '[email protected]'

msg['Subject'] = 'email for tesing'

 

#添加邮件内容

txt = MIMEText("这是邮件内容~~")

msg.attach(txt)

 

#添加二进制附件

fileName = r'e:/PyQt4.rar'

ctype, encoding = mimetypes.guess_type(fileName)

if ctype is None or encoding is not None:

ctype = 'application/octet-stream'

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

att1 = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype)

att1.add_header('Content-Disposition', 'attachment', filename = fileName)

msg.attach(att1)

 

#发送邮件

smtp = smtplib.SMTP()

smtp.connect('smtp.yeah.net:25')

smtp.login('from', '密码')

smtp.sendmail('[email protected]', '[email protected]', msg.as_string())

smtp.quit()

print '邮件发送成功'

  是还是不是很简短。轻易正是美,用最少的代码把标题化解,那便是Python。更加多关于smtplib的音讯,请参照他事他说加以考察Python手册 smtplib模块。

那篇作品首要介绍了譬如详解Python中smtplib模块管理电子邮件的施用,是Python入门学习中的基础...

比如详解Python中smtplib模块管理电子邮件的选拔,pythonsmtplib

在依照网络的运用中,程序常常索要活动地发送电子邮件。如:一个网址的登记系统会在客商注册时发送一封邮件来认同登记;当客户忘记登录密码的时候,通过邮件来收复密码。smtplib模块是python中smtp(简单邮件传输左券)的客商端完成。大家能够利用smtplib模块,轻易的发送电子邮件。上边包车型地铁事例用了不到十行代码来发送电子邮件:  

#coding=gbk 

import smtplib 

smtp = smtplib.SMTP() 
smtp.connect("smtp.yeah.net", "25") 
smtp.login('用户名', '密码') 
smtp.sendmail('[email protected]', '[email protected]', 'From: [email protected]/r/nTo: [email protected]/r/nSubject: this is a email from python demo/r/n/r/nJust for test~_~') 
smtp.quit()

本条事例够轻易吧^_^!上边详细介绍stmplib模块中的类和办法。
smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])

SMTP类构造函数,表示与SMTP服务器之间的三番两次,通过那一个三番五次大家能够向smtp服务器发送指令,施行相关操作(如:登录、发送邮件)。该类提供了过多艺术,将在上边介绍。它的富有参数都是可选的,当中host参数表示smtp服务器主机名,下面例子中的smtp主机为”smtp.yeah.net”;port表示smtp服务的端口,默许是25;要是在开创SMTP对象的时候提供了这多少个参数,在先导化的时候会自动调用connect方法去老是服务器。

smtplib模块还提供了SMTP_SSL类和LMTP类,对它们的操作与SMTP基本一致。

smtplib.SMTP提供的章程:

SMTP.set_debuglevel(level)

安装是或不是为调节和测量检验情势。私下认可为False,即非调节和测量试验形式,表示不出口任何调节和测量试验音信。

SMTP.connect([host[, port]])

三番五次到钦定的smtp服务器。参数分别表示smpt主机和端口。注意: 也能够在host参数中钦定端口号(如:smpt.yeah.net:25),那样就没须要给出port参数。

SMTP.docmd(cmd[, argstring])

向smtp服务器发送指令。可选参数argstring表示指令的参数。上面包车型客车例子完全通过调用docmd方法向服务器发送指令来落到实处邮件的发送(在smtp.yeah.net邮件服务器上考试通过。别的邮件服务器并未有试过):  

import smtplib, base64, time 
userName = base64.encodestring('from').strip() 
password = base64.encodestring('password').strip() 
smtp = smtplib.SMTP() 
smtp.connect("smtp.yeah.net:25") 
print smtp.docmd('helo', 'from') 
print smtp.docmd('auth login') 
print smtp.docmd(userName) 
print smtp.docmd(password) 
print smtp.docmd('mail from:', '<[email protected]>') 
print smtp.docmd('rcpt to:', '<[email protected]>') 
#data 指令表示邮件内容 
print smtp.docmd('data') 
print smtp.docmd(
'''''from: [email protected] 
to: [email protected] 
subject: subject 
email body 
. 
'''
) 
smtp.quit()

SMTP.helo([hostname])

采用”helo”指令向服务器确认身份。也就是告诉smtp服务器“笔者是哪个人”。
SMTP.has_extn(name)

判别钦赐名称在服务器邮件列表中是或不是留存。出于安全思虑,smtp服务器往往屏蔽了该指令。
SMTP.verify(address)

判定钦定邮件地址是还是不是在服务器中留存。出于安全着想,smtp服务器往往屏蔽了该指令。
SMTP.login(user, password)

登录到smtp服务器。今后大致具有的smtp服务器,都必得在证实顾客音信合法之后才同意发送邮件。
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

出殡邮件。这里要留心一下第3个参数,msg是字符串,表示邮件。大家通晓邮件一般由标题,发信人,收件人,邮件内容,附属类小部件等组合,发送邮件的时候,要小心msg的格式。那一个格式正是smtp左券中定义的格式。在地点的例证中,msg的值为:

 

'''''From: [email protected] 
To: [email protected] 
Subject: test 

just for test'''

其一字符串的的意趣表示邮件发件人为”[email protected]”,收件人为” [email protected]”,邮件标题为”test”,邮件内容为”just for test”。留神的你或然会疑窦:假若要发送的邮件内容很复杂,包含图表、录制、附属类小部件等内容,遵照MIME的格式来拼接字符串,将是一件极度麻烦的事。不用顾忌,python已经思量到了这一点,它为我们提供了email模块,使用该模块能够轻巧的出殡和埋葬带图片、录制、附属类小部件等复杂剧情的邮件。在介绍完smtplib模块然后,小编会简要介绍email模块的中央选择。
SMTP.quit()

断开与smtp服务器的连接,也正是发送”quit”指令。
email及其相关子模块

emial模块用来管理邮件音讯,包蕴MIME和其余根据传祺FC 2822 的音讯文书档案。使用这几个模块来定义邮件的剧情,是极度轻便的。下边是一对常用的类:

  • class email.mime.multipart. MIMEMultipart: 三个MIME对象的汇集。
  • class email.mime.audio. MIME奥迪o: MIME音频对象。
  • class email.mime.image. MIMEImage: MIME二进制文件对象。
  • class email.mime.text. MIMEText: MIME文本对象。

看上边的分解也许会认为云里雾里,其实小编对smtp, MIME的知情也很肤浅。但在多数时候,大家只要会用就足以了。上面是四个粗略的例子来演示如何利用那几个类来发送带附属类小部件的邮件:  

#coding=gbk 
import smtplib, mimetypes 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
from email.mime.image import MIMEImage 

msg = MIMEMultipart() 
msg['From'] = "[email protected]" 
msg['To'] = '[email protected]' 
msg['Subject'] = 'email for tesing' 

#添加邮件内容 
txt = MIMEText("这是邮件内容~~") 
msg.attach(txt) 

#添加二进制附件 
fileName = r'e:/PyQt4.rar' 
ctype, encoding = mimetypes.guess_type(fileName) 
if ctype is None or encoding is not None: 
 ctype = 'application/octet-stream' 
maintype, subtype = ctype.split('/', 1) 
att1 = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype) 
att1.add_header('Content-Disposition', 'attachment', filename = fileName) 
msg.attach(att1) 

#发送邮件 
smtp = smtplib.SMTP() 
smtp.connect('smtp.yeah.net:25') 
smtp.login('from', '密码') 
smtp.sendmail('[email protected]', '[email protected]', msg.as_string()) 
smtp.quit() 
print '邮件发送成功'

是还是不是很简单。简单就是美,用最少的代码把标题一举成功,那正是Python。越来越多关于smtplib的新闻,请参谋Python手册 smtplib模块。

在依靠互连网的应用中,程序常常必要活动地发送电子邮件。如:叁个网址的注...

在根据互连网的应用中,程序日常索要活动地发送电子邮件。如:一个网址的注册系统会在客户注册时发送一封邮件来确认登记;当顾客忘记登录密码的时候,通过邮件来收复密码。smtplib模块是python中smtp(简单邮件传输左券)的客商端完成。大家得以采用smtplib模块,轻巧的发送电子邮件。上面的事例用了不到十行代码来发送电子邮件:
#coding=gbk   
  
import smtplib    
  
smtp = smtplib.SMTP()    
smtp.connect("smtp.yeah.net", "25")    
smtp.login('用户名', '密码')    
smtp.sendmail('from@yeah.net''to@21cn.com', 'From: from@yeah.netrnTo: to@21cn.comrnSubject: this is a email from python demornrnJust for test~_~')    
smtp.quit()  
#coding=gbk

import smtplib

smtp = smtplib.SMTP() 
smtp.connect("smtp.yeah.net", "25") 
smtp.login('用户名', '密码') 
smtp.sendmail('from@yeah.net''to@21cn.com', 'From: from@yeah.netrnTo: to@21cn.comrnSubject: this is a email from python demornrnJust for test~_~') 
smtp.quit()

  那些事例够轻便吧^_^!上边详细介绍stmplib模块中的类和办法。

smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
  SMTP类构造函数,表示与SMTP服务器之间的连日,通过这几个一连大家能够向smtp服务器发送指令,试行有关操作(如:登入、发送邮件)。该类提供了过多艺术,就要上面介绍。它的富有参数都是可选的,个中host参数表示smtp服务器主机名,下面例子中的smtp主机为"smtp.yeah.net";port表示smtp服务的端口,私下认可是25;借使在创制SMTP对象的时候提供了那八个参数,在初叶化的时候会活动调用connect方法去老是服务器。
  smtplib模块还提供了SMTP_SSL类和LMTP类,对它们的操作与SMTP基本一致。
  smtplib.SMTP提供的艺术:

SMTP.set_debuglevel(level)
  设置是还是不是为调节和测量检验情势。默以为False,即非调节和测量试验方式,表示不出口任何调节和测量检验音信。

SMTP.connect([host[, port]])
  连接受钦定的smtp服务器。参数分别表示smpt主机和端口。注意: 也可以在host参数中钦定端口号(如:smpt.yeah.net:25),那样就没须要给出port参数。

SMTP.docmd(cmd[, argstring])
  向smtp服务器发送指令。可选参数argstring表示指令的参数。上边包车型地铁例子完全通过调用docmd方法向服务器发送指令来促成邮件的发送(在smtp.yeah.net邮件服务器上考试通过。别的邮件服务器并没有试过):

import smtplib, base64, time   
userName = base64.encodestring('from').strip()   
password = base64.encodestring('password').strip()   
smtp = smtplib.SMTP()   
smtp.connect("smtp.yeah.net:25")   
print smtp.docmd('helo', 'from')   
print smtp.docmd('auth login')   
print smtp.docmd(userName)   
print smtp.docmd(password)   
print smtp.docmd('mail from:', '<from@yeah.net>')   
print smtp.docmd('rcpt to:', '<from@yeah.net>')   
#data 指令表示邮件内容   
print smtp.docmd('data')   
print smtp.docmd('''''from: from@yeah.net  
to: from@yeah.net  
subject: subject  
email body  
.  
''')   
smtp.quit()  
import smtplib, base64, time
userName = base64.encodestring('from').strip()
password = base64.encodestring('password').strip()
smtp = smtplib.SMTP()
smtp.connect("smtp.yeah.net:25")
print smtp.docmd('helo', 'from')
print smtp.docmd('auth login')
print smtp.docmd(userName)
print smtp.docmd(password)
print smtp.docmd('mail from:', '<from@yeah.net>')
print smtp.docmd('rcpt to:', '<from@yeah.net>')
#data 指令表示邮件内容
print smtp.docmd('data')
print smtp.docmd('''from: from@yeah.net
to: from@yeah.net
subject: subject
email body
.
''')
smtp.quit()

SMTP.helo([hostname]) 
  使用"helo"指令向服务器确认身份。约等于告诉smtp服务器“小编是哪个人”。

SMTP.has_extn(name) 
  判定内定名称在服务器邮件列表中是还是不是留存。出于安全思考,smtp服务器往往屏蔽了该指令。

SMTP.verify(address) 
  推断钦点邮件地址是或不是在服务器中存在。出于安全着想,smtp服务器往往屏蔽了该指令。

SMTP.login(user, password) 
  登录到smtp服务器。未来大致具有的smtp服务器,都不能够不在认证客户音信合法之后才允许发送邮件。

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]) 
  发送邮件。这里要专一一下第多少个参数,msg是字符串,表示邮件。大家领悟邮件一般由标题,发信人,收件人,邮件内容,附属类小部件等构成,发送邮件的时候,要小心msg的格式。那几个格式就是smtp左券中定义的格式。在上头的例子中,msg的值为:

'''''From: from@yeah.net  
To: to@21cn.com  
Subject: test  
 
just for test'''  
'''From: from@yeah.net
To: to@21cn.com
Subject: test

just for test'''

  这么些字符串的的野趣表示邮件发件人为"from@yeah.net",收件人为" to@21cn.com",邮件标题为"test",邮件内容为"just for test"。留意的您只怕会疑窦:假若要发送的邮件内容很复杂,包蕴图表、摄像、附属类小部件等剧情,根据MIME的格式来拼接字符串,将是一件拾贰分麻烦的事。不用顾忌,python已经牵记到了那一点,它为大家提供了email模块,使用该模块能够轻松的发送带图片、录制、附属类小部件等复杂剧情的邮件。在介绍完smtplib模块然后,小编会简介email模块的着力接纳。

SMTP.quit() 
  断开与smtp服务器的接连,也就是发送"quit"指令。

email及其相关子模块
  emial模块用来处理邮件音信,包罗MIME和别的依据QashqaiFC 2822 的新闻文书档案。使用那些模块来定义邮件的剧情,是特别简单的。下边是有的常用的类:

class email.mime.multipart. MIMEMultipart: 七个MIME对象的成团。

class email.mime.audio. MIME奥迪(Audi)o: MIME音频对象。

class email.mime.image. MIMEImage: MIME二进制文件对象。

class email.mime.text. MIMEText: MIME文本对象。

  看上边的分解可能会感到云里雾里,其实作者对smtp, MIME的知晓也很轻描淡写。但在好多时候,大家如若会用就可以了。下边是一个粗略的例子来演示怎样利用这几个类来发送带附属类小部件的邮件:
#coding=gbk   
import smtplib, mimetypes   
from email.mime.text import MIMEText   
from email.mime.multipart import MIMEMultipart   
from email.mime.image import MIMEImage   
  
msg = MIMEMultipart()   
msg['From'] = "from@yeah.net"  
msg['To'] = 'to@21cn.com'  
msg['Subject'] = 'email for tesing'  
  
#加多邮件内容   
txt = MIMEText("那是邮件内容~~")   
msg.attach(txt)   
  
#增添二进制附属类小部件   
fileName = r'e:PyQt4.rar'  
ctype, encoding = mimetypes.guess_type(fileName)   
if ctype is None or encoding is not None:   
    ctype = 'application/octet-stream'  
maintype, subtype = ctype.split('/', 1)   
att1 = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype)   
att1.add_header('Content-Disposition', 'attachment', filename = fileName)   
msg.attach(att1)   
  
#发送邮件   
smtp = smtplib.SMTP()   
smtp.connect('smtp.yeah.net:25')   
smtp.login('from', '密码')   
smtp.sendmail('from@yeah.net''to@21cn.com', msg.as_string())   
smtp.quit()   
print '邮件发送成功'       

是或不是很简短。轻便就是美,用最少的代码把难点消除,那正是Python。越来越多关于smtplib的音讯,请参见Python手册 smtplib模块。

本文由金沙棋牌发布于金沙棋牌官方平台,转载请注明出处:举例详解Python中smtplib模块处理电子邮件的使用,

关键词: