【发布时间】:2019-01-05 14:50:59
【问题描述】:
我一直在尝试让用户通过表单向我的个人帐户发送电子邮件。一开始是给我看的
socket.gaierror: [Errno 11004] getaddrinfo 失败
我通过在我的设备中安装和配置 hMailServer 解决了这个错误。现在,当我尝试通过朋友的电子邮件发送邮件时,它会改为通过我自己的帐户发送电子邮件。当我从设置文件中删除 MAIL_HOST_USER = 'my_email' 时,它显示
smtplib.SMTPSenderRefused
标题中提到的错误。任何建议或相关链接将不胜感激。
我的代码是:
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_PORT = 25
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'my_email'
EMAIL_HOST_PASSWORD = 'my_password'
EMAIL_USE_TLS = True
views.py
class contact(View):
def post(self, request):
form = ContactForm(request.POST)
if form.is_valid():
if send_mail(subject = form.cleaned_data['title'], message = form.cleaned_data['content'], from_email = form.cleaned_data['contact_email'], recipient_list = ['my_email'], fail_silently=False):
return render(request, 'index.html', {'form': form, 'message': 'Message delivered successfully', 'error':'', 'email_sent': 1 })
else:
return render(request, 'index.html', {'form': ContactForm(), 'error': form.errors})
【问题讨论】:
-
我认为您不能从您的用户帐户发送电子邮件,因为这听起来很不对劲。就像它是真的一样,任何“坏”网站都可以实现它,例如以用户的名义发送垃圾邮件。听起来正确的是,您作为网站所有者应该能够向您的用户发送邮件,而不是其他方式。
-
@aquaman 我正在为一家公司制作一个网站,以便客户可以直接通过他们的网站与他们互动,许多 IT 公司已经在他们的网站上实施了它,我会尝试让它安全一次电子邮件有效。
-
请查看此link。
-
我建议您获取用户的电子邮件,然后代表他们将邮件从您的帐户发送到您的目的地。因为你可以控制你的目的地,即。您的客户,这应该不是问题。
-
在下面查看我的回答,如果您是自己发送邮件,问题可能出在您的端口设置上。