python集成了邮件功能,可以满足各种发邮件的需求,这里以SMTP协议和QQ邮箱为例
from email.mime.text import MIMEText
from email.utils import formataddr
import smtplib
from_addr = "from@qq.com"
password = "password"
to_addr = "接收邮箱"
smtp_server = "smtp.qq.com"
msg = MIMEText("hello world", 'plain', 'utf-8')
msg['From'] = formataddr(("我是发件人哦", from_addr))
msg['To'] = formataddr(("你是收件人", to_addr))
msg['Subject'] = "小说更新啦"
try:
server = smtplib.SMTP_SSL(smtp_server, 465)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
print("成功发送")
except smtplib.SMTPException as e:
print('发送失败', e)
to_addr = "1@qq.com, 2@qq.com, 3@qq.com"
server.sendmail(from_addr, to_addr.split(','), msg.as_string())
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formataddr
import smtplib
from_addr = "from@qq.com"
password = "password"
to_addr = "接收邮箱"
smtp_server = "smtp.qq.com"
msg = MIMEMultipart()
msg['From'] = formataddr(("我是发件人哦", from_addr))
msg['To'] = formataddr(("你是收件人", to_addr))
msg['Subject'] = "小说更新啦"
with open("test.txt", "rb") as f:
txt = f.read()
txt11 = MIMEApplication(txt)
txt11.add_header('Content-Disposition', 'attachment', filename="随便的名字")
txt11.add_header('Content-ID', '11txt')
msg.attach(txt11)
with open("png.txt", "rb") as f:
pic = f.read()
part = MIMEApplication(pic)
part.add_header('Content-Disposition', 'attachment', filename="22.png")
part.add_header('Content-ID', '22')
msg.attach(part)
msg.attach(MIMEText('<html><body><h1>Hello</h1>' +
'<p><img src="cid:22"></p>' +
'</body></html>', 'html', 'utf-8'))
try:
server = smtplib.SMTP_SSL(smtp_server, 465)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
print("成功发送")
except smtplib.SMTPException as e:
print('发送失败', e)