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()
接收邮件如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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)