Python 邮件发送
1. 注册126邮箱账号,开通POP3/SMTP服务; 期间需要发送短信, 设置授权码
2. 配置文件
sender = 'xxx@126.com'
username = 'xxx'
receive = 'xxx@163.com'
receiveName = 'xxx'
passwd = 'xxx'
mailserver = 'smtp.126.com'
port = '25'
sub = 'Python邮件发送测试'
3. 废话不说, 直接上源码; 有兴趣的可以看文档
文档地址
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.application import MIMEApplication
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from account import *
class Spider(object):
sender = sender
receive = receive
passwd = passwd
mailserver = mailserver
port = port
sub = sub
username = username
receiveName = receiveName
def __init__(self):
self.msg = MIMEMultipart('related')
self.msg['From'] = formataddr([self.username, self.sender])
self.msg['To'] = formataddr([receiveName, self.receive])
self.msg['Subject'] = self.sub
def send_txt(self):
"""
普通文本信息
:return:
"""
txt = MIMEText('this is a test mail', 'plain', 'utf-8')
self.msg.attach(txt)
def send_attach(self):
"""
发送附件
:return:
"""
attach = MIMEApplication(open("test.html", encoding='utf8').read())
attach.add_header('Content-Disposition', 'attachment', filename='test.html')
self.msg.attach(attach)
def send_img(self):
"""
发送图片
:return:
"""
f = open('1.jpg', 'rb')
pic = MIMEImage(f.read())
f.close()
pic.add_header('Content-ID', '<image>')
self.msg.attach(pic)
def send(self):
"""
发送逻辑
:return:
"""
server = smtplib.SMTP(self.mailserver, self.port)
server.login(self.sender, self.passwd)
server.sendmail(self.sender, self.receive, self.msg.as_string())
server.quit()
def run(self):
try:
self.send_attach()
self.send()
print('发送成功')
except Exception as e:
print('发送失败:{}'.format(e))
if __name__ == '__main__':
s = Spider()
s.run()