`
sking
  • 浏览: 7254 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Python邮件群发,做广告用的,注意中文编码

阅读更多
昨天用Python写了个邮件群发工具,做广告用的,注意中文编码,代码如下:
# -*- coding: cp936 -*-   
  
import email   
import mimetypes
import random
import time
import string
from email.MIMEMultipart import MIMEMultipart   
from email.MIMEText import MIMEText   
from email.MIMEImage import MIMEImage   
import smtplib   
  
def sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):   
  
        strFrom = fromAdd   
        strTo = toAdd   
  
        server = authInfo.get('server')   
        user = authInfo.get('user')   
        passwd = authInfo.get('password')   
  
        if not (server and user and passwd) :   
                print 'incomplete login info, exit now'  
                return  
  
        # 设定root信息   
        msgRoot = MIMEMultipart('related')   
        msgRoot['Subject'] = subject   
        msgRoot['From'] = strFrom   
        msgRoot['To'] = strTo   
        msgRoot.preamble = 'This is a multi-part message in MIME format.'  
  
        # Encapsulate the plain and HTML versions of the message body in an   
        # 'alternative' part, so message agents can decide which they want to display.   
        msgAlternative = MIMEMultipart('alternative')   
        msgRoot.attach(msgAlternative)   
  
        #设定纯文本信息   
#        msgText = MIMEText(plainText, 'plain', 'gb2312')   
#        msgAlternative.attach(msgText)   
  
        #设定HTML信息   
        msgText = MIMEText(htmlText, 'html', 'gb2312')   
        msgAlternative.attach(msgText)   
  
       #设定内置图片信息   
#        fp = open('test.jpg', 'rb')   
#        msgImage = MIMEImage(fp.read())   
#        fp.close()   
#        msgImage.add_header('Content-ID', '<image1>')   
#        msgRoot.attach(msgImage)   
  
       #发送邮件   
        smtp = smtplib.SMTP()   
       #设定调试级别,依情况而定   
        smtp.set_debuglevel(1)   
        smtp.connect(server)   
        smtp.login(user, passwd)
        smtp.sendmail(strFrom, strTo, msgRoot.as_string())   
#        smtp.sendmail(strFrom, strTo, msgRoot.as_string())   
        smtp.quit()
        #print strFrom+'=='+strTo
        return  
  
if __name__ == '__main__' :   
        authInfo = {}   
        authInfo['server'] = '127.0.0.1'  
        authInfo['user'] = 'admin'  
        authInfo['password'] = 'aaa'  
        fromAdd = '淘宝网 <shop001@taobao.com>'  
        toAdd = ['xxx@163.com']   
        subject = '最新:国庆中秋让利大行动,特价疯狂抢购中...最低一折起!'  
        plainText = '这里是普通文本'
        htmlText = '<a href="http://www.taobaosc.net"><img src="http://pics.taobao.com/bao/album/sys/icon/email_logo.gif" width="568" height="55" border="0"></a><br><br>'
        htmlText = htmlText+'<B>淘宝国庆疯狂抢购活动之一:</B> <a href="http://haibao.huoban.taobao.com/tms/topic.php?pid=mm_11964787_0_0&eventid=101075" target="_blank">数码特价专场</a><br><br>'
        htmlText = htmlText+'<B>淘宝国庆疯狂抢购活动之二:</B> <a href="http://haibao.huoban.taobao.com/tms/topic.php?pid=mm_11964787_0_0&eventid=101055" target="_blank">MM护肤品专场</a><br><br>'
        htmlText = htmlText+'<B>淘宝国庆疯狂抢购活动之三:</B> <a href="http://haibao.huoban.taobao.com/tms/topic.php?pid=mm_11964787_0_0&eventid=101067" target="_blank">09秋冬饰品施华洛世奇专场</a><br><br>'
        htmlText = htmlText+'<B>淘宝国庆疯狂抢购活动之四:</B> <a href="http://haibao.huoban.taobao.com/tms/topic.php?pid=mm_11964787_0_0&eventid=101074" target="_blank">一折起国庆大放价</a><br><br>'
        htmlText = htmlText+'<B>更多国庆特价活动,请猛击这里</B> >>> <a href="http://www.taobaosc.net" target="_blank">淘宝十一国庆特价汇总</a> <<<<br><br>' 

#收信人邮件地址列表
        email_file='email_list.txt'
        email_all=open(email_file,"r")
        emails=email_all.readlines()

#记录发送进度
        loginfo=open("email_log.txt","a")

        i=0
        for line in emails:
          try:
            if i%100==0:
                    loginfo.close()
                    loginfo=open("email_log.txt","a")
            time.sleep(5)
            
            i=i+1
            fromAdd = '淘宝网 <shop'+str(random.randint(0,9999))+'@taobao.com>'
            toAdd = str(line[0:-1])
            #print fromAdd,toAdd,'==',i

            
            sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)
            loginfo.write(toAdd+'\t'+str(i)+'\n')
  
          except:
            continue

        loginfo.close()    
            
         
                       



在linux下执行用 nohup python send_mail.py mail_log.txt 2>&1 &

1
3
分享到:
评论
3 楼 sking 2010-01-29  
roy.burns 写道
'email_list.txt' 这个文件的格式是??

每行一个邮件地址
2 楼 roy.burns 2009-12-28  
smtp.login(user, passwd),在这里抛出异常了,smtp用的是windows的默认的设置,不行吗?需要怎么配置??
1 楼 roy.burns 2009-12-28  
'email_list.txt' 这个文件的格式是??

相关推荐

    python邮件群发源程序.txt

    在本案例中,我们探讨的是一个使用Python编写的简单邮件群发程序。该程序不仅能够实现基本的邮件群发功能,而且还具备一个图形用户界面(GUI),方便用户输入收件人地址和邮件内容。 ### 二、程序核心模块与库 ###...

    Python群发邮件

    使用Python群发邮件,支持163,qq等常见邮箱

    【Python发送邮件】源码,支持群发和添加附件.py

    这是python发送邮件的源码,支持群发和添加邮件, 文章中有免费下载地址,这里是土豪专用下载地址,

    使用python群发邮件

    content = "这是一封来自Python的群发邮件示例。" send_email(smtp_server, port, sender, password, receivers, subject, content) ``` 在这个示例中,我们创建了一个`send_email`函数,它接受SMTP服务器地址、...

    Python+wxpy写的微信群发代码

    Python+wxpy写的微信群发代码,由于微信的发送消息频率有限制,因此如果好友数量比较多,群发时间会比较长一点;

    python实现算术编码

    在这个Python实现中,我们将深入探讨算术编码的基本原理、Python编程实现的关键步骤以及如何进行编码和解码。 1. **算术编码的基本概念** 算术编码的核心思想是将输入符号的概率分布转化为一个连续的区间,通过...

    Shannon_Python香农编码_python_shannon_香农编码_

    需要注意的是,虽然香农编码理论上有最佳的压缩效率,但在实际应用中,由于编码表的存储和重建也需要空间,所以对于非常小的数据,可能不会体现出明显的压缩效果。而当数据量较大时,香农编码的优势才会显现出来。

    Python发邮件代码

    Python发邮件代码

    PEP8Python 编码规范

    所以,正确理解这部分内容应该是:PEP8指导如何书写整洁的Python代码,并且在必要时如何将文档和注释用中文书写,同时遵守代码风格的一致性。 【部分内容】中提供了部分代码片段和编码规范的具体例子,下面我们根据...

    python邮件接收发送【完整脚本】

    本文将详细介绍如何使用Python进行邮件的发送和接收,以及如何添加附件。 一、发送邮件 Python中常用的库是`smtplib`和`email`,它们提供了发送邮件所需的功能。首先,你需要导入这两个库: ```python import ...

    Python自动化开发-群发邮件源代码

    在群发邮件方面,Python的自动化功能可以帮助您快速、准确地发送大量邮件,节省您宝贵的时间和精力。首先,您可以使用Python的smtplib库来实现电子邮件的发送功能。通过编写简洁的代码,您可以轻松地连接到邮件...

    python邮件发附件方法

    Python 邮件发附件方法是指使用 Python 语言发送带附件的电子邮件。该方法使用了 Python 的 email 模块,通过该模块可以创建一个带附件的邮件实例,并将其发送到指定的收件人邮箱中。 email 模块是 Python 的一个...

    Python编码规范(Google)

    - **避免使用分号:** 根据Google的Python编码规范,不推荐在行尾使用分号,也不允许用分号在同一行放置两条独立的语句。 **实践建议:** - 保持代码简洁明了,避免在一行内放置多条语句,这有助于提高代码的可读性...

    Python PEP8 编码规范中文版

    Python PEP8 编码规范中文版旨在为Python编程语言提供一套统一的代码编写标准,以便提升代码的可读性和一致性。PEP是Python Enhancement Proposal的缩写,它代表了Python增强提案,而PEP8是一份专门针对Python代码...

    python3发送邮件

    使用python3发送QQ电子邮件,发送人为自己,接收人可以一个可以多个。

    google的python编码规范.pdf

    Google Python 编码规范 本文档是 Google 公司的 Python 编码规范,旨在为 Python 程序员提供一个详细的编码风格指南。该指南涵盖了 Python 语言规则、 Python 风格规则、代码编写风格、注释、类、字符串、TODO ...

    信息论-基于PYTHON的常用无失真编码-香农编码 费诺编码 霍夫曼编码

    这样可以使得高频率的字符用较短的编码,低频率的字符用较长的编码,从而实现平均码长最短,达到压缩信息的效果。Python实现中,通常会用到字典来存储字符与其对应的编码。 2. **费诺编码**(Fano Coding): 费诺...

    Python学习笔记,Python3.5中文无法显示

    1. **推荐使用UTF-8编码**:尽管GBK编码在处理中文字符时也有效,但UTF-8是一种更为通用的编码,能处理世界上几乎所有的字符,因此在编写Python代码时,推荐使用UTF-8编码保存文件。 2. **编辑器设置**:确保你的...

    学生成绩单邮件群发源代码

    开发者可能会使用Python的`smtplib`库或者Java的`javax.mail` API来与SMTP服务器建立连接并发送邮件。 2. 邮件构建:邮件内容包括主题、正文和可能的附件。在成绩单的情况下,邮件主体可能包含学生的姓名、课程、...

    Python PEP8 编码规范中文版.pdf

    Python PEP8 编码规范中文版 Python PEP8 编码规范中文版是 Python 官方发布的编码规范指南,旨在提供一致的编码风格,提高代码的可读性和维护性。该规范涵盖了代码布局、命名惯例、编程风格等多方面的内容。 ...

Global site tag (gtag.js) - Google Analytics