如何使用Django发送电子邮件和附件

在本文中,我们将学习如何在Django项目中设置电子邮件。 Django使发送电子邮件变得方便,并提供了满足我们需求的各种方法。

在我们开始之前,我们必须在settings.py文件中设置电子邮件设置。

在settings.py文件中,我使用了EMAIL_HOST =’smtp.sendgrid.net’,也可以使用任何其他smtp主机,例如google smtp或任何其他主机。

我们已经创建了一个名为test_email的应用程序,并且已从该应用程序导入了视图,并且不要忘记在已安装的应用程序中包含test_email。

在test_email / urls.py中

发送简单的电子邮件
我们首先发送简单的电子邮件,因为我们将从django.core.mail模块中导入send_mail。
Django提供了方便的send_mail()函数,该函数接受以下参数。

使用:

send_mail参数
fail_silently:选项:True / False
设置为True时,错误将显示在视图中。
设置为False时,将忽略发生的错误。

auth_user:可选字段,用于接收电子邮件的经过身份验证的用户名。
auth_password:可选字段,用于接收电子邮件的经过身份验证的密码。
connection:可选字段,默认设置为默认设置。EMAIL_BACKEND,或者我们可以在settings.py文件中指定其他EMAIL_BACKEND。
html_message:接收消息html内容的可选参数。

在test_email / views.py中

如果电子邮件发送成功,email_res将返回1。

使用模板发送电子邮件
Django提供了django.template.loader模块,该模块为我们提供了使用模板发送电子邮件的功能。

therender_to_string()是使用template_name,上下文作为参数的方法,该函数返回html的模板内容。

使用:

ender_to_string()参数。

template_name:采用html模板的路径。
context:它是要传递到html模板的数据。
request:接受请求对象。
using:它是模板引擎。
创建模板
我们正在path =“ test_email / template / test_email / simple_email.html”中创建模板。

在test_email / views.py中

使用附件发送电子邮件
django.core.mail提供EmailMessage是一个类,通过它我们可以通过电子邮件发送附件。

在test_email / views.py中。

发送批量电子邮件
Django django.core.mail提供send_mass_mail()函数,该函数在其内部调用了类EmailMessage。 但是send_mass_mail()保持连接打开,而send_mail执行后关闭一次连接。

用法:

send_mass_mail()参数。
datatuple:采用多个元组,其中包括subject,from_email,to_email,msg。

在test_email / views.py中。

总结:
我们到了这篇文章的结尾。 希望我们回答了您有关如何使用Django发送电子邮件和附件的问题。