Django使用QQ邮箱发送邮件
Django使用QQ邮箱发送邮件
1、创建Django项目
- 任意文件夹下执行命令
E:\Python39\Scripts\django-admin.exe startproject django_email_learn
- django-admin.exe路径(Python安装目录下的Scripts文件夹)
项目结构
2、添加QQ邮箱配置信息
以QQ邮箱为例,先获取授权码
可以参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
- 登录QQ邮箱
- 点击设置
点击账户、点击开启POP3/SMEP服务
点击开启后验证密保,然后根据操作发送短信
然后你就得到了你的授权码,假设为(My authorization code)
配置账户信息到设置中
在django_email_learn/settings.py中添加代码
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '1310693853@qq.com'
EMAIL_HOST_PASSWORD = 'My authorization code'
说明:
- EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
声明后端我们的Django项目将使用与SMTP服务器连接。
- EMAIL_HOST = 'smtp.qq.com'
申明电子邮件主机
下表列出了常见提供商对应的 SMTP 服务器主机:
电子邮件提供商 | SMTP 服务器主机 |
---|---|
Gmail | smtp.gmail.com |
Outlook/Hotmail | smtp-mail.outlook.com |
雅虎 | smtp.mail.yahoo.com |
QQ邮箱 | smtp.qq.com |
- EMAIL_PORT = 587
该EMAIL_PORT
设置必须设置为587
,因为它是大多数 SMTP 服务器的默认端口。对于个人电子邮件提供商而言,情况仍然如此。
此端口与 TLS 加密一起使用,以确保电子邮件发送的安全性。
- EMAIL_USE_TLS = True
传输层安全(TLS) 是一种跨 Web 使用的安全协议,用于加密 Web 应用程序 (Django) 和服务器 (SMTP 服务器) 之间的通信。
- EMAIL_HOST_USER = '1310693853@qq.com'
个人电子邮件地址
- EMAIL_HOST_PASSWORD = 'My authorization code'
刚才获取的授权码
3、发送邮件
打开CMD运行
python manage.py shell
发送邮件代码
from django.conf import settings
from django.core.mail import send_mail
send_mail(
subject='A cool subject',
message='A stunning message',
from_email=settings.EMAIL_HOST_USER,
recipient_list=['1310693853@qq.com', '1150646501@qq.com'])
subject 是主题
message 是消息正文
recipient_list 是接收人
输入quit()退出shell窗口
当然你也可以在程序中发送,而不是通过shell窗口,你可以在任意地方调用send_email(),然后发送你的邮件,用shell的方式是可以不用启动服务,就可以使用他们的模块。