博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python发送邮件源码 | the5fire的技术博客
阅读量:6116 次
发布时间:2019-06-21

本文共 1572 字,大约阅读时间需要 5 分钟。

python发送邮件源码

这是之前一个公司的面试题中的一小部分。比较习惯把这中工具性的东西单独的写成一个函数,这样以后再用到,直接拿来就好。

这段代码的作用就是发送邮件可以添加附件,且可以是html样式的邮件。具体看代码吧

import
smtplib
from
email.
MIMEText
import MIMEText
from
email.
MIMEMultipart
import MIMEMultipart
def send_mail
(to
, sub
, content
, from_email
, mail_pass
, filelist
=
[
]
):
   
'''
    to:发给谁
    sub:主题
    content:内容
    from_email:登录邮箱
    mail_pass:登录密码
    filelist:附件列表,文件路径
    send_mail("aaa@126.com","the5fire","welcome to the5fire.net","xxxx@xxx.com","xxxxxx")
    '''
   
    mail_postfix
= from_email.
split
(
'@'
)
[
1
]
    mail_host
=
"smtp.%s" %
(mail_postfix
,
)
    mail_user
= from_email.
split
(
'@'
)
[
0
]
    me
=mail_user+
"<"+mail_user+
"@"+mail_postfix+
">"
    msgRoot
= MIMEMultipart
(
'related'
)
    msgRoot
[
'Subject'
]
= sub.
encode
(
'gbk'
)
    msgRoot
[
'Form'
]
= me
    msgRoot
[
'To'
]
= to
    msgRoot.
preamble
=
'this is a multi-part message IN MIME format'
   
    msgAlternative
= MIMEMultipart
(
'alternative'
)
    msgRoot.
attach
(msgAlternative
)
    msgText
= MIMEText
(content
,
'html'
,
'gbk'
)
    msgAlternative.
attach
(msgText
)
   
for onefile
in filelist:
        att
= MIMEText
(
open
(onefile
,
'rb'
).
read
(
)
,
'base64'
,
'gb2312'
)
        att
[
"Content-Type"
]
=
'application/octet-stream'
        att
[
"Content-Disposition"
]
=
'attachment;filename=%s' % onefile
        msgAlternative.
attach
(att
)
    message
= msgRoot.
as_string
(
)
   
try:
        s
=
smtplib.
SMTP
(
)
       
try:
            s.
connect
(mail_host
)
       
except
Exception
,e:
           
print
str
(e
)
        s.
starttls
(
)
        s.
login
(mail_user
,mail_pass
)
        s.
sendmail
(me
, to
, message
)
        s.
close
(
)
       
return
True
   
except
Exception
, e:
       
print
str
(e
)
       
return
False

转载地址:http://qavka.baihongyu.com/

你可能感兴趣的文章
第 三 十 三 天:shell编程之一键安装LAMP/LNMP
查看>>
我的友情链接
查看>>
自动化测试网站和博客收集
查看>>
Install Oracle 11gR2 RAC on HP-UX&AIX&RHEL
查看>>
玩转windows7之三:巧用Media Center管理多媒体文件
查看>>
我的友情链接
查看>>
500错误排查过程
查看>>
rsyslog+loganalyzer日志收集分析处理
查看>>
VertrigoServ 2.21配置phpmyadmin
查看>>
音画边框制作图文教程
查看>>
搭建nginx网站服务及应用
查看>>
世界地理信息
查看>>
mysql之commit,transaction事物控制
查看>>
Discuz!nt整合心得
查看>>
关于ViewGroup中requestDisallowInterceptTouchEvent的用法
查看>>
SQL— CONCAT(字符串连接函数)
查看>>
DataSet key points
查看>>
进制间的转换
查看>>
单例类
查看>>
*循环单链表[不带头结点]
查看>>