Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为安全起见,通过Django使用环境变量发送电子邮件_Django_Email_Django Views_Environment Variables - Fatal编程技术网

为安全起见,通过Django使用环境变量发送电子邮件

为安全起见,通过Django使用环境变量发送电子邮件,django,email,django-views,environment-variables,Django,Email,Django Views,Environment Variables,我可以在我的settings.py中使用环境变量发送电子邮件,但是如何在views.py中输入这些变量?当把实际的电子邮件放在str中时——它会工作;但为了安全起见,我把它写成了env。变量,并给了我一个错误:smtprecipientsreference。另外,我如何让它显示发件人的电子邮件。它显示在控制台中,但在我收到电子邮件时不显示。我正试图让不同的用户发送到一个电子邮件收件人作为联系形式 settings.py: SECRET\u KEY=os.environ.get('SECRET\u

我可以在我的settings.py中使用环境变量发送电子邮件,但是如何在views.py中输入这些变量?当把实际的电子邮件放在str中时——它会工作;但为了安全起见,我把它写成了env。变量,并给了我一个错误:smtprecipientsreference。另外,我如何让它显示发件人的电子邮件。它显示在控制台中,但在我收到电子邮件时不显示。我正试图让不同的用户发送到一个电子邮件收件人作为联系形式

settings.py:

SECRET\u KEY=os.environ.get('SECRET\u KEY'))
EMAIL\u HOST\u USER=os.environ.get('EMAIL\u HOST\u USER'))
EMAIL\u HOST\u PASSWORD=os.environ.get('EMAIL\u HOST\u PASSWORD'))
views.py:

def联系人(请求):
message=request.POST.get('message','')
from_email=request.POST.get('from_email','')
发送电子邮件('联系方式',消息,来自电子邮件,['email\u HOST\u USER']))
返回渲染(请求“first_app/contact.html”)
contact.html:


{%csrf_令牌%}

要在views.py中使用项目的设置,需要导入对象django.conf.settings

将views.py更改为:

from django.conf import settings

def contact(request):

    if request.method == 'POST':
        message = request.POST.get('message', '')
        from_email = request.POST.get('from_email', '')
        send_mail('Contact Form', message, from_email, [settings.EMAIL_HOST_USER])

    return render(request, 'first_app/contact.html')

要在views.py中使用项目的设置,需要导入对象django.conf.settings

将views.py更改为:

from django.conf import settings

def contact(request):

    if request.method == 'POST':
        message = request.POST.get('message', '')
        from_email = request.POST.get('from_email', '')
        send_mail('Contact Form', message, from_email, [settings.EMAIL_HOST_USER])

    return render(request, 'first_app/contact.html')

您是从表格中填写的地址发送电子邮件的,您是否具有该电子邮件的凭据?通常您只从
DEFAULT\u from\u地址发送电子邮件
谢谢您的回复(和编辑)。我设法使env变量在views.py中工作;但是,每次我从不同的电子邮件发送时,它都会显示来自我的env变量的电子邮件。我正在尝试制作一个联系人表单,用户可以在其中发布他们的电子邮件并发送到my env变量中的电子邮件。from_email=request.POST.get('from_email',''),这样收件人就可以回复用户发布的任何电子邮件。您是从表单中填写的地址发送电子邮件的,您有该电子邮件的凭据吗?通常您只从
DEFAULT\u from\u地址发送电子邮件
谢谢您的回复(和编辑)。我设法使env变量在views.py中工作;但是,每次我从不同的电子邮件发送时,它都会显示来自我的env变量的电子邮件。我正在尝试制作一个联系人表单,用户可以在其中发布他们的电子邮件并发送到my env变量中的电子邮件。from_email=request.POST.get('from_email',''),这样收件人就可以回复用户发布的任何电子邮件。谢谢Adery,这很有效!我还发现EMAIL\u HOST\u USER=os.environ.get('EMAIL\u HOST\u USER')也可以使用。但是,它仍然显示from_email from my env变量。请问request.POST是否按上述方式工作?我希望收件人能够回复。非常感谢。这行吗?我已经添加了一个检查request.method='POST'我是否有“if request.method=='POST'--但我仍然显示from_电子邮件,与我发送给的电子邮件相同::为了向google发送电子邮件,您必须向email_HOST_用户提供电子邮件_HOST_密码设置,以便向google SMTP服务器进行身份验证。因此,如果你在你的表格中,你还必须收集“from_email”的密码。检查。特别是要查看auth_用户和auth_密码。如果没有提供,Django将使用EMAIL_HOST_USER设置的值。@Keiko看一看Django的EmailMessage类,它们允许您轻松添加一个“reply_to”字段,您可以将该字段设置为海报电子邮件地址,这样您就可以从您的环境电子邮件地址直接回复海报谢谢Adery,它起作用了!我还发现EMAIL\u HOST\u USER=os.environ.get('EMAIL\u HOST\u USER')也可以使用。但是,它仍然显示from_email from my env变量。请问request.POST是否按上述方式工作?我希望收件人能够回复。非常感谢。这行吗?我已经添加了一个检查request.method='POST'我是否有“if request.method=='POST'--但我仍然显示from_电子邮件,与我发送给的电子邮件相同::为了向google发送电子邮件,您必须向email_HOST_用户提供电子邮件_HOST_密码设置,以便向google SMTP服务器进行身份验证。因此,如果你在你的表格中,你还必须收集“from_email”的密码。检查。特别是要查看auth_用户和auth_密码。如果没有提供,Django将使用EMAIL_HOST_USER设置的值。@Keiko看一看Django的EmailMessage类,它们允许您轻松添加一个“reply_to”字段,您可以将该字段设置为海报电子邮件地址,以便您可以从环境电子邮件地址直接回复海报