【发布时间】:2021-08-06 02:51:12
【问题描述】:
我正在尝试使用 Gmail SMTP 发送电子邮件,我的所有电子邮件设置都是正确的,但电子邮件未发送并且我没有收到任何异常。 我正在从 HTML 表单中提取我的值。另外,我注意到当我尝试从 shell 终端发送邮件时,它实际上是在发送,但不是在应用程序本身上。
电子邮件设置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')
EMAIL_HOST_USER = config('EMAIL_HOST_USER')
EMAIL_USE_TLS = config('EMAIL_USE_TLS', default=True, cast=bool)
views.py
from django.shortcuts import render
from django.core.mail import send_mail
def send_mail(request):
if request.method == "POST":
name= request.POST["name"]
gender= request.POST["gender"]
contact_addr= request.POST["contact_addr"]
msg = 'Hello', name
send_mail(
"Subject",
msg,
'sender@gmail.com',
["receiver@gmail.com"],
fail_silently=False,
)
return render(request, "main.html", {'name':name})
else:
return render(request, "main.html", {})
html 模板
<form
action="{% url 'app:success' %}"
method="POST"
>
{% csrf_token %}
<div class="row">
<label for="name">Name</label>
<input
name="name"
id="name"
/>
</div>
<div class="row">
<label for="gender">Gender</label>
<input
name="gender"
id="gender"
/>
</div>
<div class="row">
<label for="contact">Contact</label>
<input
name="contact"
id="contact"
/>
</div>
<div class="row">
<input type="submit" value="send" />
</div>
</form>
【问题讨论】:
-
你能举个例子吗?
-
是的,请发送您的 settings.py 和您的视图的 sn-p。不要显示密码等信息,因为它应该保密
-
已经添加了 sn-p
-
为“send_mail”分配一个变量,例如:xyz = send_mail(....)。也不要将您的视图命名为与方法相同的名称。它可能会让人困惑
-
好的...那么,我如何调用变量来发送邮件?
标签: django django-views django-email