Django学习第五天:Bootstrap5模版和邮件发送_发送邮件

让我们一起走向未来

🎓作者简介:全栈领域优质创作者
🌐个人主页:百锦再@新空间代码工作室
💡座右铭:坚持自己的坚持,不要迷失自己!要快乐


Django学习第五天:Bootstrap5模版和邮件发送_发送邮件_02


目录

  • 让我们一起走向未来
  • 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 的缓存版本传送到您的项目。

Django学习第五天:Bootstrap5模版和邮件发送_发送邮件_03

<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中配置邮箱和邮件发送

Django学习第五天:Bootstrap5模版和邮件发送_bootstrap_04

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. 发送邮件

Django学习第五天:Bootstrap5模版和邮件发送_发送邮件_05

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_mailEmailMessage 对象:

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学习第五天:Bootstrap5模版和邮件发送_python_06

可以在 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(简要说明):
  1. 安装 Celery:
pip install celery
  1. 配置 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()
  1. 在你的应用程序中定义发送邮件的异步任务。

5. 注意事项

  • 安全性:不要将邮件密码直接写在代码中,建议使用环境变量或 Django 的 django-environ 来管理敏感信息。
  • 测试环境:在开发时,建议使用 django.core.mail.backends.console.EmailBackend 来直接在控制台打印邮件内容,而不是实际发送邮件。
# 开发环境下的设置
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

这样,你就可以在控制台看到发送的邮件内容,而不必实际发送邮件。

如果你有任何问题,欢迎随时提问!

Django学习第五天:Bootstrap5模版和邮件发送_发送邮件_07