Python 电子邮件
要编写程序来发送和接收邮件,本质上就是:
-
编写MUA把邮件发到MTA;
-
编写MUA从MDA上收邮件。
发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。
收邮件时,MUA和MDA使用的协议有两种:POP:Post Office Protocol,目前版本是3,俗称POP3;IMAP:Internet Message Access Protocol,目前版本是4,优点是不但能取邮件,还可以直接操作MDA上存储的邮件,比如从收件箱移到垃圾箱,等等。
在使用Python收发邮件前,请先准备好至少两个电子邮件,如[email protected]
,[email protected]
,[email protected]
等,注意两个邮箱不要用同一家邮件服务商
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
'''
一些常用邮箱发件服务器及端口号
邮箱 发件服务器 非SSL协议端口 SSL协议端口
163 smtp.163.com 25 465/587
qq smtp.qq.com 25 465/587
'''
import time
'''
# 设置发件服务器地址
# 设置发件服务器端口号。注意,这里有SSL和非SSL两种形式
# 设置发件邮箱,一定要自己注册的邮箱
# 设置发件邮箱的密码,等会登陆会用到
# 设置邮件接收人,可以是扣扣邮箱
'''
class sendEmail:
# 设置邮件正文,这里是支持HTML的
def __init__(self,sender,receiver,pwd,info):
self.host = 'smtp.163.com'
self.port = 25
self.sender = sender
self.pwd = pwd.strip()
self.receiver = receiver
self.info=info
self.time_info = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
self.body = '<h1>头条房产</h1><p>在' + self.time_info + '页面报错</p>'
def start(self):
msg = MIMEText(self.body, 'html') # 设置正文为符合邮件格式的HTML内容
msg['subject'] = self.info # 设置邮件标题
msg['from'] = self.sender # 设置发送人
msg['to'] = self.receiver # 设置接收人
try:
s = smtplib.SMTP(self.host, self.port) # 注意!如果是使用SSL端口,这里就要改为SMTP_SSL
s.login(self.sender, self.pwd) # 登陆邮箱
s.sendmail(self.sender, self.receiver, msg.as_string()) # 发送邮件!
print 'Done'
except smtplib.SMTPException, e:
print(e)
import sendEmail
sendEmail.sendEmail('[email protected]', '[email protected]', 'xxxxx','发送信息').start()