`
sking
  • 浏览: 7267 次
  • 性别: 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邮件_邮件群发_邮箱群发文件_邮箱群发文件_源码.zip

    本资源"群发邮件_python邮件_邮件群发_邮箱群发文件_邮箱群发文件_源码.zip"提供了一个关于如何使用Python进行邮件群发的示例代码,帮助开发者实现高效的邮件群发功能。 首先,Python中的`smtplib`库是用于发送邮件...

    使用python群发邮件

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

    python查询笔画数(含汉字编码表)

    在Python编程语言中,查询汉字的笔画数是一项常见的任务,尤其在中文处理或数据分析时。这个主题涉及到几个关键知识点,包括Python的字符串操作、汉字编码以及如何利用数据资源来获取汉字笔画信息。 首先,我们需要...

    Python+wxpy写的微信群发代码

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

    python实现算术编码

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

    Shannon_Python香农编码_python_shannon_香农编码_

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

    PEP8Python 编码规范

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

    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代码...

    python+POP3实现批量下载邮件附件

    在Python3中,对于字符串的编码处理和Python2有所不同,需注意编码方式的改变,比如不再使用unicode对象而是使用str对象。 知识点二:POP3协议 POP3(Post Office Protocol 3)是一种用于接收邮件的协议。通过它,...

    google的python编码规范.pdf

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

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

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

    Python PEP8 编码规范中文版.pdf

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

    chardet-1.0.1.tar.gz 自动检测python汉字编码辅助

    完成这些步骤后,`chardet` 就可以在Python项目中使用了,为处理汉字编码问题提供了强大的支持。总的来说,`chardet` 是Python处理编码问题的一个重要工具,尤其在与HTML解析相关的场景中,它极大地提高了代码的健壮...

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

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

    Python 根据用户输入编码批量生成EAN-13条形码 Python源码

    Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13条形码 Python源码Python 根据用户输入编码批量生成EAN-13...

    几种常见的编码方式_编码_python_

    在Python中,我们可以使用`pandas.get_dummies()`或`sklearn.preprocessing.OneHotEncoder`进行独热编码。 3. **二值化(Binarization)**: 二值化是将数据转换为0和1的过程,通常用于处理二分类问题或设置阈值。...

Global site tag (gtag.js) - Google Analytics