文档章节

python2 群发 html 或文本邮件

大数据之路
 大数据之路
发布于 2012/06/11 10:07
字数 427
阅读 994
收藏 4
from email import MIMEMultipart
from email import MIMEText
from email import MIMEImage
from email.utils import COMMASPACE, formatdate

def sendmailFunc(htmlContent, userMailList, title):
    try:
        if (len(htmlContent) < 1):
            print "htmlContent is None!"
            userMailList = defaultEmailList
        #必须引用MIMEMultipart.MIMEMultipart,否则'LazyImporter' object is not callable
        msg = MIMEMultipart.MIMEMultipart('alternative')
        msg['Subject'] = (title).decode('utf-8')
        #From 必须与login、sendmail一致,否则qq邮箱会判断为垃圾邮件。
        msg['From'] = 'test@163.com'
        msg['To'] = COMMASPACE.join(userMailList)
        msg['Date'] = formatdate(localtime=True)

        msg.attach(MIMEText.MIMEText(htmlContent, 'html', 'utf-8'))
        smtp = smtplib.SMTP()
        smtp.connect("smtp.exmail.qq.com", "25")
        # 此处为公司web邮箱安全授权码,而非 oa 登录密码。
        smtp.login('test@163.com', '安全授权码')
        if len(msg.as_string()) > 0:
            smtp.sendmail('test@163.com', userMailList, msg.as_string())
        smtp.close()
        print getNowTime() + " ------------>> mail send success..."
    except Exception, e:
        print getNowTime() + " -------- " + str(e)

 

————————————————————————————————————————————

#coding:utf-8
from writeLog import *
import urllib2
import smtplib
import datetime
import re, sys

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
from email.Utils import COMMASPACE, formatdate

reload(sys)
sys.setdefaultencoding('utf-8')

def sendMailHtml(title, date, logData, receviers):
    msg = MIMEMultipart('alternative')
    msg['Subject'] = (title + '【%s】' % date).decode('utf-8')

    msg['From'] = 'noreply@ooxx.com'
    msg['To'] = COMMASPACE.join(receviers)
    msg['Date'] = formatdate(localtime=True)

    msg.attach(MIMEText(logData, 'html', 'utf-8'))

    smtp = smtplib.SMTP()
    smtp.connect("smtp.exmail.qq.com", "25")
    smtp.login('noreply@ooxx.com', 'passwd')
    if (len(msg.as_string()) > 0):
        smtp.sendmail('noreply@ooxx.com', receviers, msg.as_string())
    smtp.close()


def sendMailAtt(title, date, logData, receviers):
    #创建一个带附件的实例
    msg = MIMEMultipart()

    #构造附件
    att = MIMEText(logData, 'base64', 'utf-8')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attachment; filename=' + infoLogName.split("/")[-1]
    msg.attach(att)

    #加邮件头
    msg['Subject'] = (title + '【%s】' % date).decode('utf-8')
    msg['From'] = 'noreply@ooxx.com'
    msg['To'] = COMMASPACE.join(receviers)
    msg['Date'] = formatdate(localtime=True)

    #发送邮件
    smtp = smtplib.SMTP()
    smtp.connect("smtp.exmail.qq.com", "25")
    smtp.login('noreply@ooxx.com', 'passwd')
    if (len(msg.as_string()) > 0):
        smtp.sendmail('noreply@ooxx.com', receviers, msg.as_string())
    smtp.close()


if __name__ == '__main__':
    dateTime = datetime.date.today() - datetime.timedelta(days=0)
    strDate = str(dateTime.strftime('%Y-%m-%d'))
    print strDate
    try:
        receivers = ['username@ooxx.com']
        logData = os.popen("sort -t$'\t' -k2n " + infoLogName).read()
        sendMailAtt('你的邮件名 - ', strDate, logData, receivers)
        errorLogger.info("------------>> send success...")
    except Exception, e:
        errorLogger.info("--------" + str(e))

 

 

Refer:

[1] Python 发送邮件可以添加附件

http://www.oschina.net/code/snippet_221343_49994

[2] TypeError: 'LazyImporter' object is not callable

http://stackoverflow.com/questions/34348069/typeerror-lazyimporter-object-is-not-callable

[3] LazyImporter not callable

http://blog.gmane.org/gmane.comp.python.mime.devel/month=20061201

© 著作权归作者所有

大数据之路
粉丝 1612
博文 514
码字总数 334218
作品 0
武汉
架构师
私信 提问
Python_014 SMTP发邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 python的smtplib提供了一种很方便的途径发送电子邮件...

g00m
2015/02/21
856
0
邮件--import--smtplib

-- --import------import smtplib 模块---python邮件---------------------------------------------------------------------------- -- --12.4-------------import------import imaplib 模......

liapple6
2018/10/28
0
0
Python 发送 email 的三种方式

Python发送email的三种方式,分别为使用登录邮件服务器、使用smtp服务、调用sendmail命令来发送三种方法 本文原文自米扑博客:Python 发送 email 的三种方式 Python发送email比较简单,可以通...

sunboy2050
2018/10/18
72
0
python--Email提醒

发送邮箱的协议是STMP,python内置对SMTP支持,可以发送纯文本邮件,HTML邮件和带附件邮件。python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件 在使用前,...

guguobao
2018/08/22
0
0
Python爬虫之Email提醒

在实际爬虫运行过程中,我们不可能时刻都盯着计算机,当爬虫运行过程中遇到异常或者服务器出了问题,我们就需要通过Email即使向自己报告。 发送邮件的协议时SMTP, Python内置对SMTP的支持,可...

NiceBlueChai
2018/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

idea修改新的git地址

我们在项目变动中通常会遇到更换git地址情况,这里介绍一个在idea项目中简单更换git地址操作: 1、点击VCS; 2、点击Git; 3、点击Remotes; 具体步骤如图 4、点击框中链接即可在右边看到一个...

west_coast
25分钟前
6
0
将规则集传递给mixin

允许包装在mixin中定义的css块。 分离的规则集是一组CSS属性、嵌套规则集、媒体声明或者是存储在变量中的任何其他内容,我们可以将它包含在规则集中或其他结构中,并且所有属性都将复制到那里...

凌兮洛
27分钟前
4
0
玩转阿里云 Terraform(一):Terraform 是什么

从本文起,我将陆续推出一系列有关 Terraform 的文章,从概念,特点,工作机制,用法以及最佳实践等多个方面由浅入深的向大家介绍如何在阿里云上玩转 Terraform。同时也希望借此机会,与感兴...

阿里云官方博客
27分钟前
4
0
科研大数据面临的挑战

近几十年硬件的发展非常迅猛,第一台Macintosh苹果电脑的内存是128KB(0.13MB),现在很多笔记本配的是8GB的内存,硬盘1TB(1024GB),2TB的很常见。大型的数据服务器上还会有更大的储容量,...

英论阁学术院
27分钟前
5
0
python学习10.09:Python列表和元组的底层实现

有关列表(list)和元组(tuple)的底层实现,本节分别从它们的源码来进行分析。 首先来分析 list 列表,它的具体结构如下所示: typedef struct { PyObject_VAR_HEAD /* Vector o...

太空堡垒185
28分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部