首页 > 解决方案 > 未使用 Django send_mail() 发送电子邮件

问题描述

设置.py:

EMAIL_HOST = 'smtp.mail.yahoo.com'
SMTP_PORT = 456
EMAIL_HOST_USER = 'my_email@yahoo.com'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_USE_SSL = True

方法:

def contact(*args,**kwargs):
    contactform = ContactForm(request.POST, prefix='contactform')
    send_mail(
        'Contact from website by '+contactform.name,
        contactform.message,
        settings.EMAIL_HOST_USER,
        ['saxoya8501@emailhost99.com'],
        fail_silently=False,
    )

它不发送任何电子邮件。在我得到的日志中:

"GET /?contactform-name=myname&contactform-email=aaaa%40gnm.com&contactform-message=aaaaaaaaaaaaaa HTTP/1.1" 200 20808

我使用的表格是这样的:

class ContactForm(forms.Form):
    prefix = 'contactform'

    name = forms.CharField(max_length=50)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea(attrs={'class':'materialize-textarea'}))

关于如何让它工作的任何建议?

标签: djangodjango-formssmtp

解决方案


由于您的 Gmail 安全性,这可能是个问题。在您的 gmail 帐户设置中授予权限以允许不安全的应用程序


推荐阅读