📜  在 Django 项目中设置发送电子邮件

📅  最后修改于: 2022-05-13 01:55:48.641000             🧑  作者: Mango

在 Django 项目中设置发送电子邮件

你有没有观察到,当你在一些网站上注册时,你会收到来自那个公司或机构的邮件?电子邮件将是,验证电子邮件或欢迎电子邮件,帐户创建成功电子邮件或感谢电子邮件等。例如,当您创建 Google 帐户时,您收到的第一封邮件将类似于“Hi Xyz,欢迎使用 Google .您的新帐户可以访问 Google 产品、应用程序和服务……”从您的 Django 应用程序发送这些类型的电子邮件非常容易。
尽管您可以参考文档以了解更多关于在 Django 中发送电子邮件的信息,但这非常简洁且更容易。

如何向 Django 应用程序的注册用户发送简单的电子邮件

使用示例说明 Django 电子邮件。考虑一个名为 geeksforgeeks 的项目,它有一个名为 geeks 的应用程序。参考这个来创建 Django 项目和应用程序。现在让我们在 geeksforgeeks 项目中演示这一点。在您的“极客”应用程序的settings.py文件中,输入以下内容,

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = #sender's email-id
EMAIL_HOST_PASSWORD = #password associated with above email-id

在上面的代码中,EMAIL_HOST_USER = 'xabc6457@gmail.com' 和 EMAIL_HOST_PASSWORD = 'xyz123abc@' 是您需要添加发件人的邮件 ID 和密码的行。 xabc6457@gmail.com 和 xyz123abc@ 只是示例。

现在要在我们的应用程序中使用它,移动到views.py并在顶部添加这些行,如下所示。

from django.conf import settings
from django.core.mail import send_mail

通常,电子邮件会发送给注册的用户,对吗?因此,在注册视图函数中,添加这些行。

subject = 'welcome to GFG world'
message = f'Hi {user.username}, thank you for registering in geeksforgeeks.'
email_from = settings.EMAIL_HOST_USER
recipient_list = [user.email, ]
send_mail( subject, message, email_from, recipient_list )

现在我们将了解到底发生了什么。这里,

  • subject是指电子邮件主题。
  • message是指邮件信息,邮件的正文。
  • email_from指的是发件人的详细信息。这从 settings.py 文件中获取 EMAIL_HOST_USER,您之前在其中添加了这些代码行。
  • recipient_list是必须向其发送邮件的收件人列表,即注册到您的应用程序的任何人都会收到电子邮件。
  • send_mail是一个内置的 Django函数,它以主题、消息、email_from 和收件人列表作为参数,它负责发送电子邮件。

在将这些额外的代码行添加到您的项目后,您现在可以发送电子邮件了。但是如果您使用的是 Gmail,那么当您第一次在项目中进行这些更改并运行时,您可能会收到SMTP 错误

为了纠正这一点——
1-转到使用发件人邮件地址注册的 Google 帐户,然后选择管理您的帐户


2-转到左侧导航的安全部分并向下滚动。在不太安全的应用访问权限中,打开访问权限。默认情况下,它将被关闭。


最后运行应用程序。
现在,将任何用户注册到您的应用程序,他们将收到来自您提到的电子邮件帐户的邮件。