博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python发送邮件
阅读量:7172 次
发布时间:2019-06-29

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

hot3.png

#!/usr/bin/env python# -*- coding: utf-8 -*-# Author: guojing# Date: 2014-10-23# Purpose: 发送邮件'''发送邮件Parameters:主题、接受者(多个用','分割)、抄送(多个用','分割)、内容(可以是文件)、附件(多个用','分割)'''__author__ = 'guojing'import email,sys,osimport smtplibfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartfrom email.MIMEImage import MIMEImageSENDER = 'username@****.com'SMTPSERVER = 'smtpcloud.sohu.com'#RECEIVERS = ''USERNAME = 'username@****.com'APIKEY = '******'def sendMail(subject, receivers, cc, content, atts):    msg = MIMEMultipart('related')    msg['Subject'] = unicode(subject, "UTF-8")    msg['From'] = SENDER    msg['To'] = receivers    msg['Cc'] = cc        #邮件内容    if os.path.isfile(content):        if(content.split('.')[-1]=='html'):            cont = MIMEText(open(content).read(),'html','utf-8')        else:            cont = MIMEText(open(content).read(),'plain','utf-8')    else:        cont = MIMEText(content, 'plain','utf-8')    msg.attach(cont)        #构造附件    if atts != -1 and atts != '':        for att in atts.split(','):            os.path.isfile(att)            name = os.path.basename(att)            att = MIMEText(open(att).read(), 'base64', 'utf-8')            att["Content-Type"] = 'application/octet-stream'            #将编码方式为utf-8的name,转码为unicode,然后再转成gbk(否则,附件带中文名的话会出现乱码)            att["Content-Disposition"] = 'attachment; filename=%s' % name.decode('utf-8').encode('gbk')            msg.attach(att)    smtp = smtplib.SMTP()    smtp.connect(SMTPSERVER)    smtp.login(USERNAME, APIKEY)    for recev in receivers.split(','):        smtp.sendmail(SENDER,recev, msg.as_string())    for c in cc.split(','):        smtp.sendmail(SENDER,c, msg.as_string())    smtp.quit()def main():    print "start send mail[sendmail.py]"    subject = sys.argv[1]    receivers = sys.argv[2]    #cc = sys.argv[3]    leng = len(sys.argv)    if leng == 3:        cc = ""        content = ""        atts = -1    elif leng == 4:        print "The parameters is not currect!"        sys.exit(0)    elif leng == 5:        cc = sys.argv[3]        content = sys.argv[4]        atts = -1    elif leng == 6:        cc = sys.argv[3]        content = sys.argv[4]        atts = sys.argv[5]    sendMail(subject, receivers, cc, content, atts)    print "finish send mail[sendmail.py]"if __name__=='__main__':    main()

参考:

转载于:https://my.oschina.net/u/553773/blog/349327

你可能感兴趣的文章
《Learning Scrapy》(中文版)第1章 Scrapy介绍
查看>>
单点登录原理与实现
查看>>
初探Java设计模式4:JDK中的设计模式
查看>>
漫谈promise使用场景
查看>>
Design Pattern的万剑归宗 => Mediator
查看>>
Javascript中的原型继承的一些看法与见解
查看>>
HackerRank:JavaScript 是最知名的编程语言
查看>>
Linux修改本地时间
查看>>
elasticsearch字符串包含查询
查看>>
5- Flask构建弹幕微电影网站-项目分析、搭建目录及模型设计
查看>>
Mysql四种常见数据库引擎
查看>>
《Kotin 极简教程》第7章 面向对象编程(OOP)(1)
查看>>
Chrome吃内存的能力可不是说着玩的!
查看>>
使用paho的MQTT时遇到的重连导致订阅无法收到问题和解决
查看>>
Java多线程进一步的理解之------------缓存机制
查看>>
Appium-处理系统弹窗
查看>>
pwn练习-r0pbaby
查看>>
IntelliJ IDEA 详细图解最常用的配置 ,适合刚刚用的新人
查看>>
[20180619]fsc表示什么.txt
查看>>
域名对SEO的影响大吗?
查看>>