如何使用django表单在表单提交上发送电子邮件?

时间:2015-07-10 06:35:56

标签: django email django-forms sendmail

在实际网站上发送邮件之前,我正在运行一个小型测试Django本地SMTP服务器: 我必须在 settings.py 中设置这些设置。但是我该把它放在哪里?

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = '1025'
EMAIL_USE_TLS = True

那我该怎么办?请帮忙。

1 个答案:

答案 0 :(得分:1)

您需要将这些文件放在settings.py文件中。您可以将以下设置放在settings.py文件中的任何位置。

<强> settings.py

...

EMAIL_HOST = 'smtp.gmail.com'  # since you are using a gmail account
EMAIL_PORT = 587  # Gmail SMTP port for TLS
EMAIL_USE_TLS = True    
...

<强> local_settings.py

EMAIL_HOST_USER = 'your_username@gmail.com'
EMAIL_HOST_PASSWORD = 'your_gmail_password'

然后发送电子邮件,您可以使用Django&#39; send_email()

from django.core.mail import send_mail

send_mail('My Subject', 'My message', 'from@example.com',
    ['to@example.com'], fail_silently=False)

然后使用EMAIL_HOST文件中EMAIL_PORTsettings.py设置中指定的SMTP主机和端口发送邮件。 EMAIL_HOST_USEREMAIL_HOST_PASSWORD设置(如果已设置)用于向SMTP服务器进行身份验证,EMAIL_USE_TLS设置控制是否使用安全连接。

send_email()的签名:

  

send_mail(主题,留言,from_email,recipient_list,   fail_silently = False,auth_user = None,auth_password = None,   connection = None,html_message = None)

注意:您可以将您的Gmail帐户信息放在local_settings.py中,并将此local_settings添加到git-ignore。然后在settings.py中添加此local_settings。这样,只有您才能看到local_settings