让我们一起走向未来
🎓作者简介:全栈领域优质创作者
🌐个人主页:百锦再@新空间代码工作室
💡座右铭:坚持自己的坚持,不要迷失自己!要快乐
目录
- 让我们一起走向未来
- Django中bootstrap5作为html模板
- Django中配置邮箱和邮件发送
- 1. 配置邮件设置
- 2. 发送邮件
- 2.1 使用 Django 自带的邮件发送方法
- 2.2 发送 HTML 邮件
- 2.3 发送带附件的邮件
- 3. 测试邮件功能
- 4. 使用邮件队列(可选)
- 配置 Celery(简要说明):
- 5. 注意事项
Django中bootstrap5作为html模板
使用jsDelivr跳过下载,将 Bootstrap 编译的 CSS 和 JS 的缓存版本传送到您的项目。
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
如果您使用我们编译的 JavaScript 并且希望单独包含 Popper,请在我们的 JS 之前添加 Popper,最好通过 CDN。
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script>
Django中配置邮箱和邮件发送
Pop3开启服务
授权码(第三方密码):tkeytjdlpuhmchhb
在 Django 中配置邮箱和发送邮件通常涉及以下几个步骤:
1. 配置邮件设置
在 Django 项目的 settings.py
中配置邮件服务的相关设置。常见的邮件服务商包括 Gmail、SMTP 服务器等。
示例配置(使用 Gmail SMTP):
# settings.py
# 邮件后台设置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 使用 SMTP 后端
EMAIL_HOST = 'smtp.gmail.com' # SMTP 服务器
EMAIL_PORT = 587 # SMTP 端口
EMAIL_USE_TLS = True # 启用 TLS
EMAIL_HOST_USER = 'your-email@gmail.com' # 发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = 'your-email-password' # 邮箱密码(最好使用 App 密码,而非主密码)
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER # 默认发件人
如果你使用其他邮件服务商,相关设置会有所不同。比如使用腾讯云、阿里云等邮件服务时,可以根据其提供的 SMTP 信息进行配置。
2. 发送邮件
2.1 使用 Django 自带的邮件发送方法
你可以使用 Django 提供的 send_mail
函数来发送简单的邮件。比如:
from django.core.mail import send_mail
from django.conf import settings
send_mail(
'邮件主题',
'邮件内容',
settings.DEFAULT_FROM_EMAIL, # 发件人
['recipient@example.com'], # 收件人
fail_silently=False, # 是否忽略错误,设置为 False 会引发错误
)
2.2 发送 HTML 邮件
如果你想发送 HTML 格式的邮件,可以使用 send_mail
或 EmailMessage
对象:
from django.core.mail import EmailMessage
email = EmailMessage(
'邮件主题',
'邮件内容', # 这里是纯文本内容
'your-email@gmail.com',
['recipient@example.com'],
)
email.content_subtype = 'html' # 设置邮件内容类型为 HTML
email.send()
2.3 发送带附件的邮件
使用 EmailMessage
发送带附件的邮件也非常简单:
from django.core.mail import EmailMessage
email = EmailMessage(
'邮件主题',
'邮件内容',
'your-email@gmail.com',
['recipient@example.com'],
)
# 添加附件
email.attach('文件名.txt', '文件内容', 'text/plain') # 你可以指定附件类型
email.send()
3. 测试邮件功能
可以在 Django 的 shell 中测试邮件功能:
python manage.py shell
然后在 shell 中运行:
from django.core.mail import send_mail
send_mail('Test Subject', 'Test Message', 'your-email@gmail.com', ['recipient@example.com'])
如果你能收到邮件,就说明配置成功了。
4. 使用邮件队列(可选)
如果你需要更高效的邮件发送,特别是发送大量邮件时,可以使用邮件队列工具(如 Celery)来处理异步任务。这能避免长时间的请求等待。
配置 Celery(简要说明):
- 安装 Celery:
pip install celery
- 配置 Celery:
在 proj_name/celery.py
文件中:
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj_name.settings')
app = Celery('proj_name')
# 使用默认的 Django 设置
app.config_from_object('django.conf:settings', namespace='CELERY')
# 自动发现任务模块
app.autodiscover_tasks()
- 在你的应用程序中定义发送邮件的异步任务。
5. 注意事项
- 安全性:不要将邮件密码直接写在代码中,建议使用环境变量或 Django 的
django-environ
来管理敏感信息。 - 测试环境:在开发时,建议使用
django.core.mail.backends.console.EmailBackend
来直接在控制台打印邮件内容,而不是实际发送邮件。
# 开发环境下的设置
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
这样,你就可以在控制台看到发送的邮件内容,而不必实际发送邮件。
如果你有任何问题,欢迎随时提问!