django - 没有 sendgrid 的 Django 联系页面
问题描述
我有一个有效的 django 联系页面,当前配置为将邮件消息发送到控制台,并在我的服务器上进行了测试。使用我的服务器设置的唯一问题是它使用我的 settings.py 中预先配置的电子邮件来发送消息。我想输入自定义电子邮件地址。我已经看到 sendgrid 是这样做的一种方式,但我想知道是否可以在不使用 sendgrid 之类的服务的情况下实现这一目标?
编辑:项目代码。我希望用户在 from_email 字段中输入他们的电子邮件地址并使用我的服务器发送消息,而不是使用像 sendgrid 这样的服务。
设置.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'server.domain.tld'
EMAIL_HOST_USER = 'email@domain.tld'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
表格.py
class ContactForm(forms.Form):
from_email = forms.EmailField(
required=True,
widget=forms.EmailInput(attrs={"placeholder": "Your email address", "class": "heading"}),
label=''
)
subject = forms.CharField(
required=True,
widget=forms.TextInput(attrs={"placeholder": "Your subject", "class": "heading"}),
label=''
)
message = forms.CharField(
required=True,
widget=forms.Textarea(attrs={"placeholder": "Your message here"}),
label=''
)
视图.py
def contact_page_view(request):
contact_query = ContactForm(request.POST or None)
if request.method == 'POST':
if contact_query.is_valid():
from_email = contact_query.cleaned_data['from_email']
subject = contact_query.cleaned_data['subject']
message = contact_query.cleaned_data['message']
try:
send_mail(subject, message, from_email, ['email@domain.tld'])
except BadHeaderError:
return HttpResponse('Invalid header found.')
return redirect('pagesapp:confirm')
return render(request, 'pagesapp/contact.html', {'contact_sub': contact_query})
联系人.html
<div class="centre form-container centre-pad mobile-pad">
<form class="article-form" method="POST">
<h1 class="gold-card">Email Us</h1>
{% csrf_token %}
{{contact_sub.as_p}}
<input type="submit" value="Send email">
</form>
</div>
解决方案
如果您不想使用任何付费服务,那么您可以在您的主机上设置一个 SMTP 服务器,并在 Django 设置中使用该配置来发送电子邮件。
推荐阅读
- svn - How to dump a range of revisions in svn via CMD in Windows 10
- jenkins - 有没有办法改变詹金斯的构建结果?
- html - 使用源标签同时使用媒体和类型
- azure - 我可以将 ADF_Publish 分支合并到不同的分支吗?
- python - python Scrapy:OSError:[Errno 30]只读文件系统:'/Users'
- c++ - 为什么用 -march=native 编译没有效果?
- c++ - 让复制构造函数制作浅拷贝不是很糟糕吗?
- identityserver4 - 是否有描述 IdentityServer4 数据表和列如何协同工作的好文章/文档?
- sql - 计算分工工时?
- java - 使用用户输入的 Java 链表