day06 代码实现邮件自动发送

一. 邮件发送基本流程

生活中发送邮件的步骤:

注册邮箱信息 —> 打开登录邮箱的网址 —> 输入账号密码完成登录 —> 构建邮件 —> 发送邮件

  1. 导入发送邮件需要的所有的库

    # 连接邮箱服务器,登录邮箱和发送邮件的模块
    import smtplib
    
    # 导入邮件相关的库
    from email.mime.multipart import MIMEMultipart
    from email.header import Header
    from email.mime.text import MIMEText
    
  2. 准备邮箱账号和授权码

    username = ‘登录邮箱账号

    mandate_code = ‘授权码

    授权码获取方式见文末

  3. 连接邮箱服务器

    con = smtplib.SMTP_SSL(‘smtp.xx.com’)

    (固定内容,xx中填写登录的邮箱,例如:使用qq邮箱登录——‘smtp.qq.com’,使用163邮箱登录——‘smtp.163.com’)

  4. 登录邮箱,输入账号和授权码

    con.login(uesrname, mandate_code)

  5. 构建邮件

    1)创建邮件对象(创建空邮件)

    msg = MIMEMultipart()

    2)添加邮件主题

    header = Header(‘邮件主题’, ‘utf-8’).encode()

    msg[‘Subject’] = header

    3)设置发件人显示信息

    sender = f’{username}<{username}>’

    msg[‘From’] = sender

    4)设置收件人信息

    receiver = ’ 收件人邮箱

    msg[‘To’] = receiver

    5)构建邮件正文

    content = MIMEText(‘邮件正文内容’, ‘plain’, ‘utf-8’)

    msg.attach(content)

  6. 发送邮件

    con.sendmail(username, '收件人邮箱 ', msg.as_string())

  7. 关闭邮箱

    con.quit()

案例:

# 0. 导入发送邮件需要的所有的库
# 连接邮箱服务器,登录邮箱和发送邮件的模块
import smtplib

# 导入邮件相关的库
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText

# 1. 准备邮箱账号和授权码
username = '36677@qq.com'		# 随便敲的,勿深究,请输入自己所需登录的邮箱账号
mandate_code = 'sdfggfd'		# 复制授权码

# 2. 连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')	# 连接qq邮箱服务器

# 3.登录邮箱,输入账号和授权码
con.login(username, mandate_code)

# 4. 构建邮件
# 1)创建邮件对象(创建空邮件)
msg = MIMEMultipart()

# 2)添加邮件主题
header = Header('邮件主题', 'utf-8').encode()
msg['Subject'] = header

# 3)设置发件人显示信息
sender = f'{
     username}<{
     username}>'
msg['From'] = sender

# 4)设置收件人信息
receiver = 'yu@163.com'		# 收件人邮箱
msg['To'] = receiver

# 5)构建邮件正文
content = MIMEText('邮件正文内容', 'plain', 'utf-8')
msg.attach(content)

# 5.发送邮件
con.sendmail(username, 'yu@163.com', msg.as_string())

# 6.关闭邮箱
con.quit()

发送邮件结果:在这里插入图片描述

二. 添加文件附件

在这里插入图片描述

file = open(‘xx1’, ‘rb’).read()
att = MIMEText(file1, ‘base64’, ‘utf-8’)
att[‘Content-Disposition’] = ‘attachment; filename=“xx2”’
msg.attach(att)

xx1——需要发送为附件的文件

xx2——发送为附件的名字,最好不要是文字,可能会无法显示

案例:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText

# 1.准备账号和授权码
username = '16677@qq.com'
mandate_code = 'dghjkk'

# 2.连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.qq.com')

# 3.完成邮箱登录
con.login(username, mandate_code)

# 4.构建邮件
msg = MIMEMultipart()
# 1)主题
header = Header('发送附件', 'utf-8')
msg['Subject'] = header

# 2)收件人
receiver = 'yu@163.com'
msg['To'] = receiver

# 3)发件人
sender = f'{
     username}<{
     username}>'
msg['From'] = sender

# 4)正文
content = MIMEText('请查看附件', 'plain', 'utf-8')
msg.attach(content)

# 5) ---------------------------添加附件--------------------------------
file1 = open
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值