脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 详解python 发送邮件实例代码

详解python 发送邮件实例代码

2020-09-15 13:20lonelycatcher Python

本篇文章主要介绍了python 发送邮件实例代码,详细的介绍了各种方式发送邮件,包括文件形式的邮件、HTML形式的邮件、带图片的HTML邮件等,有兴趣的可以了解一下。

python 发送邮件实例

文件形式的邮件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimetext import MIMEText
from emailheader import Header
 
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
msg = MIMEText('你好','text','utf-8')#中文需参数‘utf-8',单字节字符不需要
msg['Subject'] = Header(subject, 'utf-8')
 
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtplogin(username, password)
smtpsendmail(sender, receiver, msgas_string())
smtpquit()

HTML形式的邮件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimetext import MIMEText
 
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
msg = MIMEText('<html><h1>你好</h1></html>','html','utf-8')
 
msg['Subject'] = subject
 
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtplogin(username, password)
smtpsendmail(sender, receiver, msgas_string())
smtpquit()

带图片的HTML邮件

?
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
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimemultipart import MIMEMultipart
from emailmimetext import MIMEText
from emailmimeimage import MIMEImage
 
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = 'test message'
 
msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image<br><img src="cid:image1"><br>good!','html','utf-8')
msgRootattach(msgText)
 
fp = open('h:\\python\\jpg', 'rb')
msgImage = MIMEImage(fpread())
fpclose()
 
msgImageadd_header('Content-ID', '<image1>')
msgRootattach(msgImage)
 
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtplogin(username, password)
smtpsendmail(sender, receiver, msgRootas_string())
smtpquit()

带附件的邮件

?
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
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimemultipart import MIMEMultipart
from emailmimetext import MIMEText
from emailmimeimage import MIMEImage
 
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = 'test message'
 
#构造附件
att = MIMEText(open('h:\\python\\jpg', 'rb')read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="jpg"'
msgRootattach(att)
     
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtplogin(username, password)
smtpsendmail(sender, receiver, msgRootas_string())
smtpquit()

群邮件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimetext import MIMEText
 
sender = '***'
receiver = ['***','****',……]
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
msg = MIMEText('你好','text','utf-8')
 
msg['Subject'] = subject
 
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtplogin(username, password)
smtpsendmail(sender, receiver, msgas_string())
smtpquit()

各种元素都包含的邮件

?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimemultipart import MIMEMultipart
from emailmimetext import MIMEText
from emailmimeimage import MIMEImage
 
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
# Create message container - the correct MIME type is multipart/alternative
msg = MIMEMultipart('alternative')
msg['Subject'] = "Link"
 
# Create the body of the message (a plain-text and an HTML version)
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://wwwpythonorg"
html = """\
<html>
 <head></head>
 <body>
  <p>Hi!<br>
    How are you?<br>
    Here is the <a href="http://wwwpythonorg">link</a> you wanted
  </p>
 </body>
</html>
"""
 
# Record the MIME types of both parts - text/plain and text/html
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
 
# Attach parts into message container
# According to RFC 2046, the last part of a multipart message, in this case
# the HTML message, is best and preferred
msgattach(part1)
msgattach(part2)
#构造附件
att = MIMEText(open('h:\\python\\jpg', 'rb')read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="jpg"'
msgattach(att)
   
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtplogin(username, password)
smtpsendmail(sender, receiver, msgas_string())
smtpquit()

基于SSL的邮件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python3
#coding: utf-8
import smtplib
from emailmimetext import MIMEText
from emailheader import Header
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtpcom'
username = '***'
password = '***'
 
msg = MIMEText('你好','text','utf-8')#中文需参数‘utf-8',单字节字符不需要
msg['Subject'] = Header(subject, 'utf-8')
 
smtp = smtplibSMTP()
smtpconnect('smtpcom')
smtpehlo()
smtpstarttls()
smtpehlo()
smtpset_debuglevel(1)
smtplogin(username, password)
smtpsendmail(sender, receiver, msgas_string())
smtpquit() 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html

延伸 · 阅读

精彩推荐