python发送邮件源码
作者:胡阳 发布:2012-10-27 23:29 分类: 阅读 150 次这是之前一个公司的面试题中的一小部分。比较习惯把这中工具性的东西单独的写成一个函数,这样以后再用到,直接拿来就好。
这段代码的作用就是发送邮件可以添加附件,且可以是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