day19-邮件自动发送基本流程
1.邮件自动发送基本流程
(1) smtplib - 登陆邮箱,发送邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('510952517@qq.com', 'simjonndpzitbghj')
email = MIMEMultipart()
email['Subject'] = Header('第一次发送邮件', 'utf-8').encode()
email['To'] = '510952517@qq.com'
email['From'] = '510952517@qq.com <510952517@qq.com>'
"""
MIMEText(文字内容,类型,编码方式)
类型 - plain(普通文字)、html(超文本)
"""
text = MIMEText('你好吗?吃饭了吗?', 'plain', 'utf-8')
email.attach(text)
connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
connect.quit()
(2) 发送邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('510952517@qq.com', 'simjonndpzitbghj')
email = MIMEMultipart()
email['Subject'] = Header('发送附件', 'utf-8').encode()
email['To'] = '510952517@qq.com'
email['From'] = '510952517@qq.com <510952517@qq.com>'
text = MIMEText('照片在附件中,请注意查收!', 'plain', 'utf-8')
email.attach(text)
image_data = open('files/luffy4.jpg', 'rb').read()
image = MIMEImage(image_data)
image['Content-Disposition'] = 'attachment; filename="luffy.jpg"'
email.attach(image)
file_data1 = open('files/a.zip', 'rb').read()
file1 = MIMEText(file_data1, 'base64', 'utf-8')
file1['Content-Disposition'] = 'attachment; filename="a.zip"'
email.attach(file1)
file_data2 = open('files/服务能力提供规范.xlsx', 'rb').read()
file2 = MIMEText(file_data2, 'base64', 'utf-8')
file2['Content-Disposition'] = 'attachment; filename="data.xlsx"'
email.attach(file2)
connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
connect.quit()
(3) 超文本邮件内容
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('510952517@qq.com', 'simjonndpzitbghj')
email = MIMEMultipart()
email['Subject'] = Header('HTML邮件', 'utf-8').encode()
email['To'] = '510952517@qq.com'
email['From'] = '510952517@qq.com <510952517@qq.com>'
content = open('files/send.html', encoding='utf-8').read()
text = MIMEText(content, 'html', 'utf-8')
email.attach(text)
image_data = open('files/luffy4.jpg', 'rb').read()
image = MIMEImage(image_data)
image.add_header('Content-ID', '<image1>')
email.attach(image)
connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
connect.quit()
(4) 图片批量发送
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import os
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('510952517@qq.com', 'simjonndpzitbghj')
email = MIMEMultipart()
email['Subject'] = Header('HTML邮件', 'utf-8').encode()
email['To'] = '510952517@qq.com'
email['From'] = '510952517@qq.com <510952517@qq.com>'
all_images = os.listdir('images')
ids = []
for name in all_images:
image_data = open(f'images/{name}', 'rb').read()
image = MIMEImage(image_data)
cid = name.split(".")[0]
ids.append(cid)
image.add_header('Content-ID', f'<{cid}>')
email.attach(image)
send = ''
for cid in ids:
send += f'<img src="cid:{cid}" alt=""><br>'
text = MIMEText(send, 'html', 'utf-8')
email.attach(text)
connect.sendmail('510952517@qq.com', '510952517@qq.com', email.as_string())
connect.quit()