标签:
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
python中有简洁可用的smtp模块,为邮件收发提供了便利,联系之前的用python写的爬虫爬下段子网站的段子(源博客:http://www.cnblogs.com/fuzzer/p/5094568.html),我们可以将其爬下的内容作为邮件内容进行发送。
源代码如下:
import sys
import re
import urllib
import smtplib
import random
from email.mime.text import MIMEText
to=[‘duem123321@163.com‘]
host="smtp.163.com" #smtp服务器
user="duem123321" #用户名
password="******" #密码
postfix="163.com" #后缀
def gethtml(url):
page=urllib.urlopen(url)
html=page.read()
return html
def getmessage(html):
p=re.compile(r‘<div class="content">(.*)</div><script type="text/javascript">‘)
#对段子内容进行正则匹配
message=re.findall(p,html)#返回正则匹配的结果
return message
def send_mail(to_list,sub,content):
me="段子集中营"+"<"+user+"@"+postfix+">"
msg = MIMEText(content,_subtype=‘plain‘,_charset=‘gb2312‘)
msg[‘Subject‘] = sub
msg[‘From‘] = me
msg[‘To‘] = ";".join(to_list)
try:
server = smtplib.SMTP()
server.connect(host)
server.login(user,password)
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == ‘__main__‘:
i=random.randint(1,500)
i=str(i)
web=gethtml(‘http://ishuo.cn/subject/‘+i)
#该网站段子的链接特点
message=getmessage(web)
message2=‘‘.join(message)#将结果转换为字符串类型
#message2=message2.decode(‘utf8‘)
message2=str(message2)
print message2
if send_mail(to,"每天一则搞笑段子",message2):
print "Suceed!"
else:
print "Failed!"
自行选择encode的方式:简体中文:gb2312 繁体中文:big5 UNICODE:UTF-8
收信结果如下:

可以将代码上传至购买的服务器,修改设置其运行时间,设置收信人列表,每天一则给想带去欢乐的人带去一点欢乐。
基于python爬虫并将其结果利用smtp协议发送至邮箱:每天一则段子。
标签:
原文地址:http://www.cnblogs.com/fuzzer/p/5096243.html