day19-邮件自动发送基本流程

day19-邮件自动发送基本流程

1.邮件自动发送基本流程

(1) smtplib - 登陆邮箱,发送邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText

# 第一步:登陆邮箱
# 1. 连接邮箱服务器
# smtplib.SWTP_SSL(服务器地址,邮箱服务端口)  -  连接邮箱服务器并且返回一个连接对象
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)

# 2. 登陆邮箱
# 连接对象.login(账号,密码)
connect.login('510952517@qq.com', 'simjonndpzitbghj')

# 第二步: 准备邮件
# 1. 创建邮件对象
email = MIMEMultipart()

# 2. 设置邮件主题
# Header(邮件标题,编码方法)
email['Subject'] = Header('第一次发送邮件', 'utf-8').encode()

# 3. 设置邮件接收者信息(收件人)
email['To'] = '510952517@qq.com'

# 4. 设置邮件发送人
email['From'] = '510952517@qq.com <510952517@qq.com>'


# 5. 添加正文
"""
MIMEText(文字内容,类型,编码方式)
类型   -   plain(普通文字)、html(超文本)
"""
text = MIMEText('你好吗?吃饭了吗?', 'plain', 'utf-8')
email.attach(text)

# 第三步: 通过连接发送邮件
# 连接对象.sendmail(发件人,收件人,邮件对象.as_string())
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

# 1. 登录1
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('510952517@qq.com', 'simjonndpzitbghj')

# 2. 准备邮件
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)

# ===================1. 图片附件=====================
# 1)打开图片读取图片二进制数据
image_data = open('files/luffy4.jpg', 'rb').read()
# 2)创建图片对象
image = MIMEImage(image_data)
# 3)设置图片为附件
image['Content-Disposition'] = 'attachment; filename="luffy.jpg"'
# 4)将图片附件添加到邮件对象中
email.attach(image)

# ==================2.其他文件附件====================
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)

# 3. 发送邮件
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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值