使用Python实现邮件发送
2017-04-20 22:02
357 查看
如果实现一个服务器的状态通知,可以选择通过邮件提醒的方式实现。Python自带的模块库中有支持smtp协议邮件发送的功能。
写了一个简单的小例子实现Python的邮件发送功能如下:
1 #!/usr/bin/python
2 # -*- coding: cp936 -*-
3
4 import os, smtplib, mimetypes
5 from email.mime.text
import MIMEText
6 from email.mime.image
import MIMEImage
7 from email.mime.multipart
import MIMEMultipart
8
9 mail_list = ["XXX@cqu.edu.cn"]
10 mail_host =
"smtp.126.com"
11 mail_user =
"XXXX"
12 mail_psswd =
"XXXX"
13 mail_psotfix =
"126.com"
14 mail_from = mail_user +
"<"+mail_user + "@" + mail_psotfix +
">"
15
16 def send_mail(subject, content, filename =
None):
17 try:
18 message = MIMEMultipart()
19 message.attach(MIMEText(content))
20 message["Subject"] = subject
21 message["From"] = mail_from
22 message["To"] =
";".join(mail_list)
23
if filename != None
and os.path.exists(filename):
24 ctype, encoding = mimetypes.guess_type(filename)
25
if ctype is
None or encoding
is not
None:
26 ctype =
"application/octet-stream"
27 maintype, subtype = ctype.split("/",
1)
28 attachment = MIMEImage((lambda f: (f.read(), f.close()))(open(filename,
"rb"))[0], _subtype = subtype)
29 attachment.add_header("Content-Disposition",
"attachment", filename = filename)
30 message.attach(attachment)
31
32 smtp = smtplib.SMTP()
33 smtp.connect(mail_host)
34 smtp.login(mail_user, mail_psswd)
35 smtp.sendmail(mail_from, mail_list, message.as_string())
36 smtp.quit()
37
38
return True
39 except
Exception, errmsg:
40
print
"Send mail failed to: %s" % errmsg
41
return False
42
43 if __name__ ==
"__main__":
44
if send_mail("python email title",
"send from python",
r"筷子兄弟 - 父亲.mp3"):
45
print
"send sucess"
46 else:
47
print
"failed to send”
查看运行结果:
GreydeMac-mini:Chapter_02 greyzhang$ ls
c01.py diff.zip
mail.py
d1.py dns_parser.py
pydiff.py
d2.py email_demo.py
report.html
diff.py join.py
筷子兄弟 - 父亲.mp3
GreydeMac-mini:Chapter_02 greyzhang$ python email_demo.py
send sucess
邮件发送成功,查看接收邮箱可以看到邮件已经收到。现在的唯一遗憾是附件的编码格式出了问题,成了乱码。
写了一个简单的小例子实现Python的邮件发送功能如下:
1 #!/usr/bin/python
2 # -*- coding: cp936 -*-
3
4 import os, smtplib, mimetypes
5 from email.mime.text
import MIMEText
6 from email.mime.image
import MIMEImage
7 from email.mime.multipart
import MIMEMultipart
8
9 mail_list = ["XXX@cqu.edu.cn"]
10 mail_host =
"smtp.126.com"
11 mail_user =
"XXXX"
12 mail_psswd =
"XXXX"
13 mail_psotfix =
"126.com"
14 mail_from = mail_user +
"<"+mail_user + "@" + mail_psotfix +
">"
15
16 def send_mail(subject, content, filename =
None):
17 try:
18 message = MIMEMultipart()
19 message.attach(MIMEText(content))
20 message["Subject"] = subject
21 message["From"] = mail_from
22 message["To"] =
";".join(mail_list)
23
if filename != None
and os.path.exists(filename):
24 ctype, encoding = mimetypes.guess_type(filename)
25
if ctype is
None or encoding
is not
None:
26 ctype =
"application/octet-stream"
27 maintype, subtype = ctype.split("/",
1)
28 attachment = MIMEImage((lambda f: (f.read(), f.close()))(open(filename,
"rb"))[0], _subtype = subtype)
29 attachment.add_header("Content-Disposition",
"attachment", filename = filename)
30 message.attach(attachment)
31
32 smtp = smtplib.SMTP()
33 smtp.connect(mail_host)
34 smtp.login(mail_user, mail_psswd)
35 smtp.sendmail(mail_from, mail_list, message.as_string())
36 smtp.quit()
37
38
return True
39 except
Exception, errmsg:
40
"Send mail failed to: %s" % errmsg
41
return False
42
43 if __name__ ==
"__main__":
44
if send_mail("python email title",
"send from python",
r"筷子兄弟 - 父亲.mp3"):
45
"send sucess"
46 else:
47
"failed to send”
查看运行结果:
GreydeMac-mini:Chapter_02 greyzhang$ ls
c01.py diff.zip
mail.py
d1.py dns_parser.py
pydiff.py
d2.py email_demo.py
report.html
diff.py join.py
筷子兄弟 - 父亲.mp3
GreydeMac-mini:Chapter_02 greyzhang$ python email_demo.py
send sucess
邮件发送成功,查看接收邮箱可以看到邮件已经收到。现在的唯一遗憾是附件的编码格式出了问题,成了乱码。
相关文章推荐
- 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
- python使用smtplib模块通过gmail实现邮件发送的方法
- python3使用smtplib实现发送邮件功能
- python使用smtplib模块通过gmail实现邮件发送的方法
- 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
- 使用python 3实现发送邮件功能
- 使用mail.jar和activation.jar实现邮件的接受和发送
- 一步一步教你使用Jmail实现邮件的接收与发送
- 使用UTL_MAIL包实现存储过程邮件发送(转)
- 如何使用cdosys.dll实现发送邮件
- python - 如何通过GMail发送邮件:smtplib的使用
- 使用python发送简单的邮件
- PHP 实现 注册等的邮箱验证 (二)—— 使用 PHPMailer 发送邮件
- 学习使用python发送邮件
- HP-UX下使用python发送邮件
- 使用python发送带附件的邮件(转)
- 如何使用JMAIL组件实现邮件的发送与接收
- 使用python 驱动 lotus notes发送邮件
- 使用Nvelocity实现发送邮件功能(ASP.NET MVC2环境下)
- 如何使用Python发送带附件的邮件