Django_发送邮件

使用django邮箱功能需要搭建smtp服务器,如果没有,可以使用第三方smtp服务器。

本文以第三方QQ邮箱服务器演示如何使用python的smtplib+email完成邮箱发送功能。

一、开启SMTP服务并获取授权码

具体参考 email + smtplib使用简介

二、在Django的配置文件中添加邮箱服务配置

复制代码
# 设置使用django的smtp配置(固定值)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# smpt服务地址(根据选择smtp服务器配置)
EMAIL_HOST = 'smtp.qq.com'
# 邮箱端口(在django中是固定值)
EMAIL_PORT = 25
# 发送邮件的邮箱
EMAIL_HOST_USER = '41XXXXX67@qq.com'
# 在邮箱中设置的客户端授权密码(第一步获取的授权码)
EMAIL_HOST_PASSWORD = 'spisXXXXXtbidj'
# 邮箱中显示的发件人(必须与EMAIL_HOST_USER 的值一致)
EMAIL_FROM = '41XXXXX67@qq.com'
复制代码

三、发送邮箱代码

复制代码
import os

from dailyfresh import settings
from django.core.mail import EmailMultiAlternatives

# 导入配置django配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')

subject = 'Django邮件调试'    # 邮件标题
message = 'test'            # 发送内容
sender = settings.EMAIL_FROM    # 发送人
receiver = ["XXXX@qq.com"]  # 收件人
cc_receiver = ["41XXXXX67@qq.com"]  # 抄送人

_email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=receiver, cc=cc_receiver)
# 添加html内容(注:如果添加了html内容,message的内容不会被发送)
html_msg = "<div><h1>H1标签</h1></div><div><h3>H3标签</h3></div>"
_email.attach_alternative(html_msg, "text/html")

# 添加附件
with open("./test.pdf", "rb") as f:
    content = f.read()
attach_file_name = "attach_file1.pdf"    # 邮箱中显示的附件名称
_email.attach(attach_file_name, content)
# 添加多个附件,多次调用attach方法即可
attach_file_name = "attach_file2.pdf"
_email.attach(attach_file_name, content)

# 发送邮件
_email.send()
复制代码

接收邮件如下:

 

posted @   码上测  阅读(198)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-04-26 Pytest_配置文件-pytest.ini(4)
2021-04-26 Pytest_常用执行参数详解(3)
点击右上角即可分享
微信分享提示