Python之邮件发送

项目中用到的邮件发送模块,有发送附件功能

直接上代码:

-----------------------------------------

调用方法的代码,命名为main.py,需要注意的地方见代码上方的备注:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from sendMail import *

if __name__ == '__main__':

    # 发送方,必须为开通了smtp服务的邮箱账号,,否则无法通过程序发送邮件。怎么开通smtp服务,

    #邮箱页面会有说明,我当时开通126是通过手机号进行验证后,就ok

    from_address='myFlyTester@FlyTester.com'

    # 发送方邮箱密码

    from_pwd='flyTester123456'

    # 发送方的smtp服务器,再次强调!!!想实现发送邮件功能,必须开通smtp服务!!!

    from_smtp='smtp.126.com'

    # 接收邮件列表,list形式,如['aaaa@FlyTester.com','bbbb@FlyTester.com','cccc@FlyTester.com']

    mail_list=['zhangsan@FlyTester.com','lisi@FlyTester.com']

    # 邮件标题

    header='每时监控统计记录'

    # 邮件正文,可以任意写内容

    mail_body='本次统计记录,见附件'

    # 附件路径,这次想将一个excel放到附件中发送

    file='D:/mywork/data/2016-08-16.xlsx'

    # 邮件中显示的附件名称,附件在邮件中以此名显示

    filename='统计表.xlsx'

    # 调用发送邮件模块,并接收返回值,此值包括了邮件是否发送成功,具体会返回什么,详见邮件发

    #送模块

    result=send_mail(file,filename,from_address,from_pwd,from_smtp,mail_list,header,mail_body)

    # 打印返回值

    print result

--------------------------------------------------------------------------------------------

发送邮件的代码,命名为sendMail.py,需要注意的地方见代码上方的备注:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from email.mime.text import MIMEText

from email.header import Header

from email import MIMEBase

from email import Encoders

from email import MIMEMultipart

import smtplib

 

# 定义发送邮件

def send_mail(file,filename,from_address,from_pwd,from_smtp,mail_list,header,mail_body):

    try:

      # 得到邮件实例

      msg = MIMEMultipart.MIMEMultipart()

      # ----------------------------------邮件正文-------------------------------

      body = MIMEText(mail_body, 'html', 'utf-8')

      msg.attach(body)

      # ----------------------------------邮件标题-------------------------------

      msg['Subject'] = Header(header,'utf-8')

      # ----------------------------------发送者---------------------------------

      msg['From'] = from_address

      # ----------------------------------接收者,list列表形式,如

      #['aaa@test.com','bbb@test.com','ccc@test.com']

      msg['To'] = ";".join(mail_list)

      # ----------------------------------添加附件-------------------------------

      part = MIMEBase.MIMEBase('application', 'octet-stream')

      part.set_payload(open(file, 'rb').read())

      # 指定附件编码

      Encoders.encode_base64(part)

      # 附件在邮件中显示的名称

      part.add_header('Content-Disposition', 'attachment; filename='+filename)

      # 加入附件

      msg.attach(part)

      # -------------------------------- smtp服务器-----------------------------

      smtp = smtplib.SMTP()

      smtp.connect(from_smtp)

      # ---------------------------------发送-----------------------------------

      # 登录邮箱

      smtp.login(from_address, from_pwd)

      # 发送邮件

      smtp.sendmail(from_address, mail_list, msg.as_string())

      smtp.quit()

      return 'email has send out !'

    except Exception,e:

      return 'send mail error !!! ',e

------------------------------------------------------------------------------------------------------------------------------------

更多请关注:FlyTester,关注技术的测试者

QQ群:456850134

web站:www.flytester.org

微信扫描二维码关注:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值