django发邮箱配置
这里用163邮箱为例,QQ邮箱等配置基本都是一样的
步骤
1,找到全局配置
先找到我们django的全局配置,这里默认项目是在虚拟环境创建的,路径为:venv/Libs/django/conf/global_settings.py,这个路径下是django的全局配置,基本需要的配置路径等都可以在这里找到
2,搜索EMAIL配置相关
在global_settings中Ctrl+F搜索EMAIL,如果普通配置的话,只需要我选中的这些就够了,这里讲解一下都是干嘛的
# 指定Django使用哪个邮件后端来发送电子邮件。这里指定了使用SMTP邮件后端。
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
# 指定用于发送邮件的SMTP服务器的主机名或IP地址。
# "localhost" 表示SMTP服务器位于本地主机上。把这里改为自己邮箱的SMTP地址
# 163邮箱SMTP网址:smtp.163.com,QQ邮箱SMTP网址:smtp.qq.com,其他的自行百度或在官网查找
EMAIL_HOST = "localhost"
# 指定SMTP服务器的端口号,用于与服务器建立连接。通常SMTP服务器都使用25端口,建议不要修改
EMAIL_PORT = 25
# 指定是否使用本地时间来记录邮件的发送时间。不重要
EMAIL_USE_LOCALTIME = False
# 指定用于登录SMTP服务器的用户名。这里填写自己的邮箱名
EMAIL_HOST_USER = ""
# 指定用于登录SMTP服务器的密码。这里填写的不是自己的邮箱密码,而是需要待会去申请的授权密码
EMAIL_HOST_PASSWORD = ""
# 指定是否使用TLS(传输层安全性)来加密与SMTP服务器之间的通信。需要安全连接可以将其设置为True。
EMAIL_USE_TLS = False
# 指定是否使用SSL(安全套接层)来加密与SMTP服务器之间的通信。
EMAIL_USE_SSL = False
# 指定SSL证书文件的路径,用于SSL连接时的身份验证(如果需要)。
EMAIL_SSL_CERTFILE = None
# 指定SSL密钥文件的路径,用于SSL连接时的身份验证(如果需要)。
EMAIL_SSL_KEYFILE = None
# 指定与SMTP服务器建立连接的超时时间,以秒为单位。
EMAIL_TIMEOUT = None
3,复制到自己项目settings中 ![](https://img-blog.csdnimg.cn/32f212dbf07346c699801b1351d15ac8.png)
4,开启STMP服务并获取授权密码
去自己需要配置的邮箱官网,开启STMP服务并获取授权密码(此处以163邮箱为例)
找到设置,再找到POP3/SMTP...,
在下面也可以找到SMTP服务器地址
开启SMTP服务,我这里已经开启了,如果没有开启过第一次开启会给一个授权密码,记得保存。
5,配置授权密码
把授权密码复制到项目中的 EMAIL_HOST_PASSWORD
6,测试发邮件
进入python manage.py shell终端测试
返回1也就意味着发送成功。
(venv) PS D:\test\python_test\django_first\myapp> python .\manage.py shell
Python 3.11.4 (tags/v3.11.4:d2340ef, Jun 7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.core.mail import EmailMultiAlternatives
# 创建一个邮件实例,subject为发送给邮件的主题;body为发送邮件的内容;from_email就是你在settings
# 中配置的你的邮箱地址,to是个列表,可以调试给多个邮箱地址发送邮件
>>> mail = EmailMultiAlternatives(subject="邮件主题", body="邮件内容", from_email="...",
... to=["...","...])
>>> mail.send()
1
>>>
7,查看结果
打开接收邮箱,发现接收成功
其它邮箱基本步骤都是差不多的,这里不再过多讲述