在Django项目中设置发送电子邮件
你难道没有注意到,当你在一些网站上注册时,你会收到该公司或机构的邮件吗?这些邮件会是,验证邮件或欢迎邮件,账户创建成功的邮件或感谢邮件,等等。例如,当你创建一个谷歌账户时,你收到的第一封邮件是这样的:”嗨,Xyz,欢迎来到谷歌。你的新账户可以访问谷歌的产品、应用程序和服务…..”。从你的Django应用程序中发送这些类型的邮件是非常容易的。
虽然你可以参考文档来了解更多关于Django中发送邮件的信息,但这是非常浓缩的,也更容易了。
如何向你的Django应用程序的注册用户发送简单的电子邮件。
用一个例子来说明Django的电子邮件。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。参考这个来创建Django项目和应用程序。现在让我们在geeksforgeeks项目中演示一下。在你的 “geeks “应用程序的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指的是电子邮件的主题。
- 消息指的是电子邮件信息,即电子邮件的主体。
- email_from指的是发件人的详细信息。这是从settings.py文件中获取的EMAIL_HOST_USER,你在前面添加了这几行代码。
- recipient_list是发送邮件的收件人列表,也就是说,无论谁注册了你的应用程序,他们都会收到邮件。
- send_mail是一个内置的Django函数,它以subject、message、email_from和收件人列表为参数,负责发送邮件。
在这些额外的代码行被添加到你的项目后,你现在可以发送电子邮件了。但如果你使用的是Gmail,那么当你第一次在项目中做这些修改并运行时,你可能会得到SMTP错误。
为了纠正这一点–
1-进入用发件人邮件地址注册的谷歌账户,选择管理你的账户
2-进入左侧导航中的安全部分并向下滚动。在Less secure app access中,打开访问。默认情况下,它将被关闭。
最后运行应用程序。
现在,为你的应用程序注册任何用户,他们将从你提到的电子邮件账户中收到邮件。