Django 邮件
最后修改于 2023 年 1 月 9 日
Django 发送邮件教程演示了如何在 Django 中发送邮件。在本教程中,我们使用 Mailtrap 服务。
Django
Django 是一个高级 Python Web 框架。它鼓励快速开发和清晰、实用的设计。Django 的主要目标是简化复杂、数据库驱动的网站的创建。
Django 由 Django Software Foundation 维护。
Django 发送邮件示例
在下面的示例中,我们创建一个 Django 应用程序,该应用程序将邮件发送到 Mailtrap 帐户。如果我们还没有帐户,需要注册一个。注册过程非常简单快捷。每月免费发送 500 封邮件。
$ mkdir sendmail $ cd sendmail $ mkdir src
我们创建一个项目目录并创建一个 src
子目录。
$ cd src $ django-admin start-project sendmail .
我们创建一个新的 Django 项目。
$ mkdir sendmail/templates
我们创建 templates
目录,并将我们的模板文件放在其中。
$ tree /f src │ manage.py │ └───sendmail │ settings.py │ urls.py │ views.py │ wsgi.py │ __init__.py │ └───templates home.html
这是项目目录的内容。
注意: Django 的方式是将功能放入应用程序中,而应用程序是使用 django-admin startapp
创建的。在本教程中,我们不使用应用程序,以使示例更简单。我们专注于演示如何发送邮件。
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'sendmail/templates')], ... ] ... # Email settings EMAIL_HOST = 'smtp.mailtrap.io' EMAIL_HOST_USER = 'username' EMAIL_HOST_PASSWORD = 'password' EMAIL_PORT = '2525'
在 setting.py
文件中,我们配置了 templates 目录。在文件末尾,我们提供了电子邮件配置设置。这些可以在 Mailtrap 的 SMTP 设置和集成下拉菜单中找到。
from django.contrib import admin from django.urls import path from .views import home, sendmail urlpatterns = [ path('admin/', admin.site.urls), path('', home, name='home'), path('sendmail', sendmail, name='sendmail'), ]
我们定义了路由。一个路由显示主页,另一个路由调用我们的自定义 sendmail
函数。
from django.shortcuts import render from django.http import HttpResponse from django.core.mail import send_mail def home(request): return render(request, 'home.html') def sendmail(request): send_mail( 'Subject', 'Email message', 'from@example.com', ['to@example.com'], fail_silently=False, ) return HttpResponse('Mail successfully sent')
我们在 src/sendmail
中创建了 views.py
文件。有两个视图函数。
def home(request): return render(request, 'home.html')
home
函数渲染主页,其中包含一个用于发送邮件的锚点。
def sendmail(request): send_mail( 'Subject', 'Email message', 'from@example.com', ['to@example.com'], fail_silently=False, ) return HttpResponse('Mail successfully sent')
Django 的 send_mail
函数用于发送邮件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Home page</title> </head> <body> <a href="{% url 'sendmail' %}">Send test mail</a> </body> </html>
主页包含一个发送请求以发送邮件的锚点。
$ python manage.py runserver
我们运行服务器并导航到 http://127.0.0.1:8000/
。现在我们点击链接。
在本文中,我们演示了如何使用 Django Web 框架发送电子邮件。