首页 > 科技周边 > IT业界 > 如何使用SMTP服务器向Django发送电子邮件

如何使用SMTP服务器向Django发送电子邮件

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-02-08 10:58:10
原创
562 人浏览过

如何使用SMTP服务器向Django发送电子邮件

您是否曾经在Django项目中设置电子邮件集成方面曾努力?无论是配置SMTP设置,处理安全问题还是自动联系表格,电子邮件功能对于用户参与和信任至关重要。

>

在本教程中,我们将介绍如何使用Django使用DJANGO进行实用,分步说明。我们将介绍如何配置Django SMTP连接,如何为您的电子邮件提供商设置密码以及如何通过Django Shell发送电子邮件。我们还将查看如何为您的Django应用程序设置联系表格,这将使您的客户可以与您联系。

钥匙要点

    配置SMTP设置:设置DJANGO电子邮件通过配置设置。Py文件中使用适当的电子邮件后端,主机,端口和安全设置(例如TLS)。
  • >使用Django Environ:使用Django Environ来管理敏感凭据,例如email_host_user和email_host_pass_password,通过环境变量安全地管理敏感凭据,以防止源代码中的凭据。
  • 生成特定于应用程序的密码:使用Gmail时,启用2步验证并创建一个应用程序密码以安全身份验证DJANGO邮件发送而不是依靠您的主密码。
  • >
  • >使用send_mail发送电子邮件:使用DJANGO的内置send_mail函数将电子邮件从django shell,视图或可重复使用的辅助辅助函数中发送给Django,并利用设置用于简化的配置。
  • >
  • >实施自动联系表格:使用Django表格构建自动联系表格,并集成电子邮件订单功能以无缝处理用户查询。
  • >
  • 测试电子邮件功能:使用单位测试验证电子邮件订阅逻辑,并使用MailHog或Console Email Backend等工具进行安全开发测试。
  • 遵循最佳实践:通过使用TLS加密,适当的身份验证和模块化电子邮件功能确保安全有效的电子邮件交付以可重复使用。
  • 大多数Web应用程序都使用电子邮件来管理关键操作,例如重置密码,帐户激活,接收客户反馈,发送新闻通讯和营销活动。当Gmail用于测试或小型项目时,生产网站应使用专用的电子邮件服务,例如AWS SES,SendGrid或MailGun。 但是,如果您比较使用专用电子邮件服务的成本和努力,则与您的个人电子邮件一起发送电子邮件对于小型或测试项目可能更合理。因此,我们将在此处采用这种方法来保持简单。

> NOTE

>:为您的生产网站使用您的个人电子邮件服务不是一个好主意。您可以了解有关

gmail发送限制的更多信息,或者参考电子邮件提供商的局限

注意:本教程的完整代码可在GitHub上找到。

>

了解SMTP服务器和简单的邮件传输协议

> SMTP(或简单的邮件传输协议)是确定如何从发件人传输到收件人的一组规则。 SMTP服务器使用此协议发送和继电器传出电子邮件。 (请注意,其他协议控制电子邮件的收到>。 > SMTP服务器始终具有发送消息的唯一地址和一个特定端口,在大多数情况下是587。我们将在Django电子邮件发送中查看该端口的相关。

在此示例中,我们将使用Gmail的SMTP服务器,其中:>

地址:smtp.gmail.com

端口:587
  • 现在,让我们看看如何与django发送电子邮件。
  • >
  • 创建一个django项目

>每个Django项目都应该具有虚拟环境,因为我们不想弄乱项目依赖项。要创建一个,请运行以下内容:

注意:如果您不熟悉虚拟环境,请确保检查我们的

python <span>-m venv .venv</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
python虚拟环境指南

>上面的命令创建了一个具有名称.venv的虚拟环境。要激活此虚拟环境,您可以使用以下内容:> >由于Django是第三方包,您必须使用PIP安装它:>

这将安装最新版本的Django,您可以使用PIP冻结检查。>

要创建一个Django项目,您可以调用命令行实用程序Django-admin:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

>使用上面的命令,您正在创建一个带有emailProject的Django项目,但是您可以使用任何想要的名称创建项目。现在,输入到项目目录并运行服务器:

pip <span>install django</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

运行Django服务器后,请访问http:// localhost:8000在您的浏览器中。您会看到一个带有最新Django发行说明的自动生成页面。
django-admin startproject EmailProject
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

<span>cd EmailProject
</span>python manage.py runserver
登录后复制
登录后复制
登录后复制
登录后复制
>配置DJANGO电子邮件后端为SMTP
如何使用SMTP服务器向Django发送电子邮件电子邮件后端是与Django发送电子邮件的机制。默认情况下,django使用django.core.mail.backends.smtp.emailbackend,它允许其连接到SMTP服务器并发送电子邮件。根据环境(开发或生产),您可以选择其他电子邮件后端以适合您的需求。
>

>在发送电子邮件之前,您需要修改设置文件,因此,让我们使用以下命令找到该文件:>

>
注意:为简单起见,我们将仅使用unix(macOS或linux)系统命令。
python <span>-m venv .venv</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

树命令输出目录的文件结构。在这种情况下,由于我们没有给它一个特定的目录路径,因此,如果我们在项目的根文件夹中,我们将获得类似的内容:>

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
我们将在本教程中不断修改的文件是EmailProject文件夹中的设置。它持有您需要的所有项目配置,并允许您设置自定义变量。正如Django文档所说,“设置文件只是具有模块级变量的Python模块”。

>让我们看一下与Django发送电子邮件所需的设置。打开emailProject/settings.py文件并将以下设置粘贴到文件底部:>

>让我们通过分析这些设置中的每一个来分解上述代码。>

>电子邮件后端
pip <span>install django</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

email_backend设置声明后端我们的django项目将用于与SMTP服务器连接。>

这个变量指向SMTP.EmailBackend类,该类接收发送电子邮件所需的所有参数。我强烈建议您直接在Django源代码上查看类构造函数。您会对此代码的可读性感到惊讶。

>

>

注意:尽管此类是默认的email_backend,但在DJANGO设置中被认为是一个好习惯。

>所有其他电子邮件设置将基于此Emailbackend类的构造函数。

>电子邮件主机 > email_host设置是指您将使用的SMTP服务器域。这取决于您的电子邮件提供商。下面是一张带有SMTP服务器主机的表,该表与三个普通提供商相对应:>

电子邮件提供者

smtp Server主机

gmailsmtp.gmail.com.outlook/hotmailsmtp-mail.outlook.utlook.comyahoosmtp.mail.yahoo.com

>我们现在将此设置留为空白,因为我们稍后将使用.ENV文件以避免使用硬编码的敏感键或每个站点配置。您切勿将凭据直接设置为代码。我们将使用Django Environ来解决此问题。
>电子邮件端口 > email_port设置必须设置为587,因为它是大多数SMTP服务器的默认端口。个人电子邮件提供商仍然如此。该端口与TLS加密一起使用,以确保发送电子邮件的安全性。> 电子邮件使用tls

>传输层安全性(TLS)是在网络上使用的安全协议,用于加密Web应用程序(DJANGO)和服务器(SMTP服务器)之间的通信。

最初,我们将email_use_tls变量设置为trui。这意味着Django将使用传输层安全性连接到SMTP服务器并发送电子邮件。 (对于个人电子邮件提供商来说,这是必须的。)

>电子邮件主机用户

> email_host_user设置是您的个人电子邮件地址。现在将其留为空白,因为我们将使用django-environ来设置所有这些凭据。

电子邮件主机密码

> email_host_password设置是您从电子邮件帐户中获取的应用程序密码 - 本节之后我们将要进行的过程。同样的故事:将此设置留为空白,因为我们以后将使用环境变量。

> 对于其他提供商,您可以相应地调整设置。例如:

> Outlook配置:

python <span>-m venv .venv</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
> yahoo配置:

<span># CMD
</span>.venv<span>\Scripts\activate
</span>
<span># Power Shell
</span>.venv<span>\Scripts\Activate.ps1
</span>
<span># WSL
</span><span>source .venv/bin/activate</span>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
>使用应用程序密码设置Gmail SMTP服务器

>由于Google将“较不安全的应用程序”弃用,因此连接到Gmail帐户发送电子邮件的正确和安全方法是使用应用程序密码。仅当您为Google帐户启用2步验证时,应用程序密码才能可用。

>

为什么使用应用程序密码?

>

安全替代方案:App密码不是共享主密码,而是为特定应用程序提供有限的访问。>
    >使用SMTP:APP密码符合Gmail的SMTP访问的安全要求。
  1. 2步验证的强制性:一旦启用了两步验证,应用程序是允许外部应用程序连接的唯一方法。
  2. >
  3. >步骤1:启用2步验证
访问您的Google帐户:https://myaccount.google.com/。

导航到左侧菜单中的安全性。
  1. >滚动到“您如何登录Google”部分。
  2. >
  3. >单击“ 2步验证”,然后按照屏幕上的说明进行操作:
  4. 使用您的电话号码或身份验证器应用程序来设置2步验证。
  5. >用发送到设备的代码验证您的设置。
  6. 步骤2:生成一个应用程序密码
如何使用SMTP服务器向Django发送电子邮件>启用了2步验证后,在搜索栏中搜索“应用程序密码”。

在那里,输入应用程序密码的名称,然后单击“创建”。

  1. 然后,它将通过16个字符的应用程序密码提供一个弹出模式。确保将其保存在某个地方,因为它只会显示一次。
>
如何使用SMTP服务器向Django发送电子邮件
  1. 如果您使用的是其他电子邮件提供商,请确保阅读以下指南:>
    • > Yahoo App密码
    • Outlook或Hotmail App密码

    使用Django Environ来保护电子邮件后端凭据

    即使您只是在开发中发送电子邮件,也不应直接将密码写入源代码。当使用版本控制系统与GitHub一起托管您的项目时,这变得更加重要。 您不希望别人访问您的数据。

    >让我们看看如何使用django-environ。

    >在emailProject目录中创建一个.env文件(wertings.py文件所在的位置),其中命令以下:>

    现在,打开该.ENV文件并输入以下键 - 值对:>
    python <span>-m venv .venv</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    分解此文件的内容:

    <span># CMD
    </span>.venv<span>\Scripts\activate
    </span>
    <span># Power Shell
    </span>.venv<span>\Scripts\Activate.ps1
    </span>
    <span># WSL
    </span><span>source .venv/bin/activate</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    > email_host:您的电子邮件提供商的SMTP服务器地址。请参阅上面的电子邮件主机表以获取快速指导。在这种情况下,我正在使用smtp.gmail.com,gmail smtp地址。

    > email_host_user:您的电子邮件地址。
    • > email_host_password:您刚刚生成的应用程序密码。请记住,它不包含任何空间。
    • > coverient_address:您将收到消息的电子邮件地址。这是一个自定义设置,我们以后将创建,将所有电子邮件发送给同一收件人。
    • 要利用这些环境变量,我们需要安装Django-environ:
    注意:确保您的虚拟环境已激活。

    >
    pip <span>install django</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    现在,打开位于emailProject目录中的设置。

    首先,我们在设置文件的顶部导入环境包。请记住,所有进口都应该在开始。然后,我们创建一个Env变量,该变量将包含.env。 > env('键')语句意味着我们正在查找该密钥的价值。在进行之前,请确保已设置.ENV文件。否则,如果未设置某些环境变量,您将获得DJANGO不正确配置的错误。

    >

    >

    注意:conferient_address是一种自定义设置,我们将使用该设置将电子邮件发送到我们可以访问的地址。
    django-admin startproject EmailProject
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    如果您使用git和github,请不要忘记将.env文件包含在.gitignore中。您可以通过打开并添加以下行来执行此操作:

    >

    1。与Django Shell 一起发送电子邮件 >最后,我们进入了文章的多汁部分!是时候将您的第一封电子邮件发送到Django了。

    >

    打开一个终端,激活虚拟环境并运行:>

    <span>cd EmailProject
    </span>python manage.py runserver
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    >这将创建一个已经为我们配置的所有Django设置创建一个外壳。在那个全新的外壳中,粘贴以下代码:

    >

    我们还可以在不指定参数的情况下进行单线工作:>

    python <span>-m venv .venv</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    让我们分解上面的代码:

    • 我们导入django send_mail函数。
    • 然后,我们导入包含所有全局设置和每个站点设置的设置对象(settings.py文件中的这些对象)。
    • >最后,我们将所有所需的参数传递给send_mail函数。此函数返回在这种情况下发送的电子邮件数量1.
    • >请注意我们如何使用设置对象获取From_email(您发送电子邮件的电子邮件)和conterient_list(我们在.ENV中定义的conferient_address自定义设置)。
    >

    现在,如果我检查收件箱 - 当我将收件人_address环境变量设置为电子邮件地址时,我将获得Django发送的电子邮件。

    >

    如何使用SMTP服务器向Django发送电子邮件>异步电子邮件发送
    在Django 4.x中,支持异步电子邮件发送以提高性能。这对于高流量网站或发送批量电子邮件时很有用。

    >

    这是您可以异步发送电子邮件的方法:

    >

    >异步电子邮件发送在以下情况下很有用:

    >
    <span># CMD
    </span>.venv<span>\Scripts\activate
    </span>
    <span># Power Shell
    </span>.venv<span>\Scripts\Activate.ps1
    </span>
    <span># WSL
    </span><span>source .venv/bin/activate</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    >非阻止操作,发送电子邮件不应延迟用户请求。>

    >发送批量电子邮件(使用芹菜等任务队列进行生产规模任务)。
    • 注意:虽然Django支持异步电子邮件,但对于生产规模的批量电子邮件,请使用诸如芹菜或Django-Q之类的背景任务队列进行真正的非阻止操作。
    • >
    • 2。使用Django
    构建自动触点表格

    >在本节中,我们将使用Django表单和内置的send_mail函数构建自动联系表格。我们还将在联系表格中创建一个自定义函数,send(),以便在视图中更容易实现。

    >让我们从创建联系应用程序开始。输入项目根目录(Manage.py所在的位置)并运行:

    >

    然后,在emailProject/settings.py文件中将其安装在您的installed_apps变量中

    >在使用联系人应用程序前进之前,让我们配置emailProject/urls.py文件内部的urlpatterns。为此,请导入django.urls.include函数,并在整个项目中包含联系URL。不用担心;我们稍后将配置联系URL:

    pip <span>install django</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    触点表格

    django-admin startproject EmailProject
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    >输入联系人应用程序文件夹并创建一个forms.py文件。最好在forms.py文件中定义您的所有表格,这是一个很好的做法,但这不是强制性的。这就是为什么Django默认不包含此文件的原因。您可以使用以下命令来创建表单文件:>

    打开您刚创建的文件,并进行以下导入:>
    python <span>-m venv .venv</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    > django表单模块为我们提供了创建我们的联系表格的所有必要类和字段。我们再次导入设置对象和send_mail函数以发送电子邮件。

    >

    我们的联系表将包含几个字段,并使用两种自定义方法:get_info(),该方法格式化了用户提供的信息,并发送()将发送电子邮件。让我们看看这是在代码中实现的:

    <span># CMD
    </span>.venv<span>\Scripts\activate
    </span>
    <span># Power Shell
    </span>.venv<span>\Scripts\Activate.ps1
    </span>
    <span># WSL
    </span><span>source .venv/bin/activate</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    这个课程很大,所以让我们分解每个部分的工作。首先,我们定义了发送电子邮件的四个字段:

    >
    • >名称和查询是Charfields,代表联系消息的名称和原因。
    • 电子邮件是一个电子邮件场,代表试图与您联系的人的电子邮件地址。请注意,该电子邮件不会由用户的电子邮件地址发送,而是通过您设置的电子邮件地址发送的电子邮件地址。
    • 邮件是另一个Charfield,除了我们使用的是Textarea小部件。这意味着,在显示表单时,它将呈现a
    • >进入自定义方法,我们仅使用get_info方法来格式化用户的信息并返回两个变量:主题,这是询问字段和消息,这将是Django发送的实际电子邮件消息。
    • 另一方面,send()方法仅从get_info获取格式化的信息,并使用send_mail函数发送消息。尽管本节很大,但是您会看到我们如何通过将所有发送逻辑实现到ContactForm本身来简化联系人视图。
    >

    联系人视图

    >打开Contact/views.py文件并添加以下导入:>

    如您所见,我们将使用django通用视图,这在制作简单任务时节省了我们大量的时间 - 例如,在设置具有FormView的表单或创建仅呈现模板的视图时templateView。

    >另外,我们正在导入上一节中构建的联系人和使用

    基于类的视图

    时使用的reverse_lazy函数。继续视图,让我们写下ContactView:
    pip <span>install django</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    >

    如您所见,我们正在使用我们创建的ContactForm构建一个简单的FormView。我们还将设置template_name和Success_url。我们将编写HTML模板并稍后设置URL。

    表单有效方法让我们仅在表单的所有字段都是有效的情况下,使用ContactForm.Send()方法发送电子邮件。这意味着,如果用户输入无效输入(例如未格式化的电子邮件地址),则不会发送消息。

    > 上述form_valid方法实现在基于函数的视图中等效于以下内容:

    python <span>-m venv .venv</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    >结束本节,我们将编写ContactSucessView,该ContactSucessView将向用户显示成功消息。由于我们已经导入了TemplateView类,因此我们只需要从中继承并定义Template_name属性:

    >
    <span># CMD
    </span>.venv<span>\Scripts\activate
    </span>
    <span># Power Shell
    </span>.venv<span>\Scripts\Activate.ps1
    </span>
    <span># WSL
    </span><span>source .venv/bin/activate</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    >您可以在GitHub存储库上查看views.py文件,如果您有任何疑问。

    联系URL

    是时候创建联系应用程序的URL模式了。由于django默认不给我们提供urls.py文件,因此我们需要使用以下命令来创建它(请确保在Contact App文件夹中):>

    pip <span>install django</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    打开该文件并设置app_name和urlpatterns变量:

    django-admin startproject EmailProject
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    >我们使用路径将路由及其通讯视图包括在应用程序的URL配置中。当我们将app_name变量设置为“联系”时,这意味着该应用程序的URL

    > >

    注意:一个名称空间是我们在django模板和视图中动态地称为url。
    <span>cd EmailProject
    </span>python manage.py runserver
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    >您可以在官方文档中了解有关Django URL调度程序的更多信息。

    > >写模板

    > django模板是使用django模板语言提供的HTML和特殊标签动态显示数据的首选方法。

    对于此特定应用,我们将使用三个模板:

    >

    base.html:所有其他模板都将从它继承。它将包含所有模板必须具有的HTML骨架,以及链接到Bootstrap。

    contact.html:显示触点表格。

    success.html:显示成功消息。
    • >让我们首先创建联系人的应用模板结构(请确保您在联系人应用程序文件夹中):
    • 上面的命令创建可重复使用的django应用程序的典型模板结构 - appName/applates/appname-以及我之前提到的树模板文件。以下是应用程序文件结构现在应该看起来像:

    >让我们跳入base.html模板的内容:

    如您所见,这是HTML文件的简单骨架,其中包含Bootstrap 5的链接。这使我们可以在不使用CSS文件的情况下对联系人应用进行样式化。 {%块block of-block%}标签使我们能够设置“子模板”将使用的占位符。此标签的使用使模板继承是一个容易的任务。
    tree
    登录后复制
    登录后复制

    >在进入表格之前,您需要安装Django脆皮表套件,这使我们可以轻松地对它们进行样式化:

    >
    ├── EmailProject
    │   ├── asgi.py
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    └── manage.py
    
    1 directory, 6 files
    登录后复制

    再次,crispy_forms是一个django应用,我们需要将其包含在installed_apps列表中:

    <span># EmailProject/settings.py
    </span>
    <span># Bottom of the file
    </span>EMAIL_BACKEND <span>= 'django.core.mail.backends.smtp.EmailBackend'
    </span>EMAIL_HOST <span>= ''
    </span>EMAIL_PORT <span>= 587
    </span>EMAIL_USE_TLS <span>= True
    </span>EMAIL_HOST_USER <span>= ''
    </span>EMAIL_HOST_PASSWORD <span>= ''
    </span>
    登录后复制

    我们使用Bootstrap 4的模板包,因为Bootstrap表格类是第四版和第五版之间的兼容(在写作时)。

    >

    现在,让我们使用Contact.html模板:

    python <span>-m venv .venv</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    请注意我们如何扩展基本模板并利用块占位符。这就是使Django模板语言如此高效的原因,因为它使我们可以节省大量的HTML复制和粘贴。

    >

    >谈论表格,我们使用的是“帖子”,这意味着我们的ContactView将处理用户给出的数据,并在表格有效时发送电子邮件。由于安全原因,{%csrf_token%}是必不可少的。 Django的文档在CSRF代币上有一个专用页面,并且在使用表格时使用它们的原因。

    我们将使用脆皮模板标签呈现表单,这就是为什么我们用{%load load Crispy_forms_tags%}加载脆皮标签的原因。

    >

    最后,让我们写下成功。

    如您所见,这是一个简单的成功公告,并具有指向联系表格的链接,以防用户要发送另一个消息。

    >让我们再次运行服务器并访问http:// localhost:8000(请确保已激活.venv,并且您在项目root文件夹中):>

    <span># CMD
    </span>.venv<span>\Scripts\activate
    </span>
    <span># Power Shell
    </span>.venv<span>\Scripts\Activate.ps1
    </span>
    <span># WSL
    </span><span>source .venv/bin/activate</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    下图显示了最终触点表格的外观。

    pip <span>install django</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    这是成功消息的图像。

    如何使用SMTP服务器向Django发送电子邮件
    >这是收件箱中电子邮件的图像。

    >

    如何使用SMTP服务器向Django发送电子邮件
    >关注

    的最佳实践

    1。可重复使用的电子邮件发送功能
    如何使用SMTP服务器向Django发送电子邮件>使您的电子邮件订阅逻辑模块化和可重复使用,您可以将电子邮件发送功能移动到辅助功能:>

    >现在,您可以在需要发送电子邮件(包括您的联系表格)的任何地方调用此功能。>

    2。单元测试

    您可以使用django.test进行测试发送电子邮件django功能。

    django-admin startproject EmailProject
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    3。发送丰富的HTML电子邮件

    HTML电子邮件提供更好的设计和演示文稿。使用Django的模板引擎来创建丰富的电子邮件内容:

    4。集成第三方电子邮件服务

    >用于生产就绪的应用程序,请考虑使用SendGrid,MailGun或AWS SES等第三方服务。这些服务提供了高级功能,例如电子邮件分析,交货跟踪和垃圾邮件过滤。>
    <span>cd EmailProject
    </span>python manage.py runserver
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    5。用户注册中的电子邮件验证

    >在用户注册期间发送电子邮件验证链接以防止垃圾邮件帐户。

    tree
    登录后复制
    登录后复制
    总结

    恭喜!您已经学会了如何与Django一起发送电子邮件以及如何构建Django联系表。

    有很多方法可以与Django发送电子邮件。在本教程中,您已经与您的个人电子邮件地址一起完成了,但是我希望您探索其他工具并将其集成到您的项目中。

    >

    在本教程中,我们介绍了以下内容:

    >
    • >如何设置Django设置以提供电子邮件
    • >如何使用个人电子邮件帐户在小型项目中发送电子邮件
    • >如何使用.ENV文件在Django项目中使用敏感数据
    • 如何构建自动联系表格
    • 有关Django的更多信息,请查看“使用django构建照片共享应用”。
    DJANGO上的FAQS

    使用SMTP服务器发送电子邮件

    我可以发送django的电子邮件吗?

    是的,Django提供了一个内置的电子邮件待发送框架,该框架使发送电子邮件变得容易。通过在设置中配置SMTP设置。Py文件,您可以使用send_mail函数或emailmessage类发送电子邮件。

    如何在django中发送电子邮件?

    >

    >配置DJANGO发送电子邮件:>

    Set the SMTP details in your settings.py file:EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = 'your_email@example .com'email_host_password ='your_app_password'

    如果您使用Gmail或类似的提供商,请使用安全密码而不是主电子邮件密码。
      >
    • 用于生产,请考虑使用SendGrid,MailGun或Amazon SES等第三方服务以获得更好的可伸缩性。
    • >如何在django中发送Outlook邮件?
    • >要在Django发送Outlook Mail,您可以将Django的电子邮件发送功能与SMTP设置进行Outlook。在您的django project的settings.py文件中,为Outlook配置SMTP设置。这些设置将使Django能够连接到Outlook SMTP服务器发送电子邮件。
    • 如何在Django中接收电子邮件? 在您的Django Project的设置中,
    >配置您的传入电子邮件服务器设置。通常,您需要电子邮件提供商的IMAP(Internet消息访问协议)服务器详细信息以及身份验证凭据。接下来,使用iMaplib库连接到您的电子邮件服务器并检索电子邮件。您可以在Django视图或自定义管理命令中执行此操作。获取电子邮件后,您可以在Django应用程序中进行处理,提取信息并执行任何必要的操作。这可能涉及解析电子邮件内容,将相关数据存储在数据库中,或者基于电子邮件的内容或发件人触发特定操作。

    >

    我如何在不发送真实电子邮件的情况下测试发送django的电子邮件?

    > 在开发过程中,您可以使用可选的电子邮件后端来测试电子邮件,而无需连接到真正的SMTP服务器。例如:Console电子邮件后端:将电子邮件打印到终端而不是发送它们。

    >
    python <span>-m venv .venv</span>
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制
    登录后复制

    >要进行更高级的测试,请使用MailHog或MailTrap之类的工具,这些工具充当伪造的SMTP服务器,用于捕获和显示测试电子邮件。

    我如何安全地管理敏感电子邮件凭据?

    >

    >使用Django Environ从.ENV文件加载敏感凭据(例如电子邮件主机,用户名和密码):

    1. 安装Django Environ:PIP安装Django-Environ
    2. >创建一个.env文件:email_host = smtp.gmail.com email_host_user = your_email@example.com emage_host_password = your_app_password
    3. >在settings.py中加载.env文件:import emovy.env()emover.env.env.eard_env()email_host = env('email_host')email_host_host_user = env('email_host_user')email_host_user') email_host_password')

以上是如何使用SMTP服务器向Django发送电子邮件的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板