当前位置:网站首页 > 全部文章 > 正文

危机公关处理案例【编程希望小学07】编写群发邮件程序帮老板催账(一)-实习人

发布时间: 2019-09-28 浏览: 289

【编程希望小学07】编写群发邮件程序帮老板催账(一)-实习人黑颜知己


黄豆豆,人称“贵利王”,是一家民间借贷公司的老板,为顺应全球化、信息化趋势,黄总需要做两件大事:一是改名为Eric胡笳汉月,二是委托我们开发一个群发邮件的催账小程序。
程序要实现的功能非常简单南韩血战记,就是按如下的催款单中的信息给客户们发邮件:
区庄傻强100万 9月3日 callmestupid@163.com
岗顶金城武 700万 9月4日 goldencityforce@163.com
花都梁朝伟50万 9月6日 tonyleung@gmail.com
越秀小凤仙 88万 9月10日 xiaofengxian@qq.com
东山藤原拓海 66万 9月15日 ae86@shixiren.com
......
今天,我们先来学习一个最基本的Python发送邮件的小程序,代码如下:

首先用import语句引入相关的技能库乡野小村医,这个大家应该比较熟悉了。
然后我们将发送邮件需要的SMTP服务器信息存储到mail_host, mail_user, mail_pass三个字符串变量中。
由于主流的邮件服务商如QQ邮箱李本森 , 163邮箱等经常有一些限制,比如不能同时发送大量垃圾邮件绾青丝结局 ,必须用真实的发件人邮箱地址等等,所以为了测试方便,机智的我们可以选择注册一个限制较少的SMTP服务器账号方便长期测试,比如在www.smtp2go.com上注册一个账号,注册时需要填一个有效邮箱来激活九岁小魔医 ,激活完成后就可以设置使用smtp服务器的账号和密码,这里的账号可以随便填个邮箱,不一定需要有效,比如我用的是“xielaoban@tongluowan.com”,实际上并没有这个邮箱,但不会影响发送德保苏铁 。
准备就绪,下面我们开始设置要发送的邮件的相关信息:
sender = 'boss@stanford.edu'receivers = ['xieqiaovui@163.com']
这里sender可以随便写,也不影响发送,例如“boss@stanford.edu”,然后receivers这里填收件人的email谭江柏,这里写的是xieqiaovui@163.com,这个邮箱是存在的,因为我们要检查程序发的邮件是不是真的收到了。
这个跟你寄快递一样,发件人是可以乱写的,但收件人可不能瞎写陈其五,哈晓得?
接下就是构建邮件的正文:
messageBody = '亲爱的一碌蔗先生,我谨代表实习人金融咨询公司向您表达诚挚的问候...'message = MIMEText(messageBody, 'plain', 'utf-8')message['From'] = Header('boss'危机公关处理案例 , 'utf-8')message['To'] = Header('client', 'utf-8')subject = '春风载我来收数'message['Subject'] = Header(subject, 'utf-8')
首先我们将邮件正文内容存到messageBody字符串变量中,然后用MIMEText创建一个message对象,可以理解为一个邮件实体。
有了正文,我们接下来设置message的其他信息,包括message['Subject'],也就是邮件的主题,以及'From'和'To'信息,这里的From和To并不用做地址,可以理解为寄快递时候的收件人姓名和发件人姓名,也是可以瞎写的,总之只要收件人地址填对了,对方就能收到你的包裹。
先插播一句,运行程序收到的邮件实际长这个样子,大家可以对照着看下:

邮件的标题和内容跟我们设置的一样,其他信息根据不同邮箱的情况略有不同短尾蝮蛇,比如刚才的收件人如果改成ivycloser@gmail.com,收到的邮件如下:

聪明的Gmail服务器识别出这不是stanford.edu的邮件,显示通过"smtphost.com"发送
插播完毕,现在我们正式发送邮件应县吧 ,代码如下:
try: smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 2525) smtpObj.login(mail_user, mail_pass) smtpObj.sendmail(sender, receivers,周厚恩 message.as_string()) print "邮件发送成功"except smtplib.SMTPException: print "Error: 无法发送邮件"
其实大家只要复制粘贴即可,这是一段标准的Python发送邮件的代码,唯一要注意的就是:smtpObj.connect(mail_host, 2525)
这里是程序建立跟smtp服务的连接的语句,mail_host是服务器域名/地址,也就是我们之前存储的"mail.smtp2go.com",如果是QQ邮箱就是"smtp.qq.com",然后2525是服务器提供发送邮件服务的端口,一般默认是25,但我们这里使用的是smtp2go.com提供的服务器,它比较特殊,默认是2525。
关于服务器和端口,大家可以形象地理解为服务器是银行服务大厅,而端口是大厅里面的窗口,不同窗口可以提供不同类型的服务,包括网页浏览、远程登录、FTP服务器等,程序使用服务器的某种服务需要指定服务器地址和窗口号码,比如“北京招商银行清华园支行10号窗口”,它可能提供兑换美金的服务。
今天的程序就先讲到这里,大家可以照猫画虎自己试一试,下次我们再讲如何根据催款单中的信息给多位客户发送邮件。
2017年5月18日雨后的晚霞^^
点击“阅读原文”可以下载源代码文件,更多弱到爆的教程:http://shixiren.com/coding/

TAGS: