目錄:
  1. 利用Python的email模块发带附件的邮件
    1. 还在手动方式发邮件吗?你out了

    利用Python的email模块发带附件的邮件

    閱讀時間:全文 396 字,預估用時 2 分鐘
    創作日期:2017-03-29
    文章標籤:
     
    BEGIN
    • 小A: 请问如何不用软件向多个人发送邮件?
    • 小B: 你是想群发邮件发广告吗?
    • 小A: 不不不,只是用来监控项目的异常并及时告知。
    • 小B: 哦,这个简单。

    还在手动方式发邮件吗?你out了

    想必做python项目开发的肯定遇到过类似问题,程序崩溃,服务终止,自己却不知道,导致用户骂声连连。其实这些都可以通过python配置邮件提醒。不过如果你是用阿里云服务器部署的,那也可用用阿里云自带的log监控,更方便更快捷。下面是python发送邮件的代码

    #引入依赖的模块
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    
    message = MIMEMultipart()  #创建带附件的email实例
    mailto_list=['xxx@qq.com', 'xxx@qq.com']   #目标邮箱地址
    mail_host="smtp.163.com"   #设置服务器
    mail_user="xxx@163.com"    #用户名
    mail_pass="xxx"            #口令
    mail_postfix="163.com"     #发件箱的后缀
    
    message['To'] = ",".join(mailto_list)     #收件邮箱地址 
    message['From'] = '来自xx安全中心'      #发件人详情
    message['Subject'] = '给老师的一封信'     #主题
    message.attach(MIMEText('尊敬的xxx:', 'html', 'utf-8'))   #正文内容
    
    # 构造附件,传送当前目录下的 test.txt 文件
    file = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')
    file["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    file["Content-Disposition"] = 'attachment; filename="test.txt"'
    message.attach(file)
    
    try:
        s = smtplib.SMTP()            #创建邮件发送实例
        s.connect(mail_host)          #连接smtp服务器
        s.login(mail_user,mail_pass)  #登陆服务器
        me = "<"+mail_user+"@"+mail_postfix+">" 
        s.sendmail(me, mailto_list, message.as_string())  #发送邮件
        print "邮件发送成功"
    except smtplib.SMTPException, e:
        print "Error: 无法发送邮件", e
    FINISH

    隨機文章
    人生倒計時
    default