当前位置: 首页 > 知识库问答 >
问题:

Django和AWS简单电子邮件服务

巢德华
2023-03-14

我试图让一个django站点启动并运行,我试图启用django的标准密码重置服务。

我的网站是由AWSEC2托管的,所以我想我应该使用AWSES来提供电子邮件服务。但是,我无法使smtp连接正常工作。关于如何解决以下错误的任何想法:

异常类型:拒绝异常值:(530, b'身份验证必需','example@example.com')

我看了以下内容,但如果可能的话,我更喜欢使用django内置的电子邮件后端:

  • https://github.com/django-ses/django-ses
  • https://github.com/azavea/django-amazon-ses
  • 亚马逊SES SMTP与Django

电子邮件设置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
EMAIL_PORT = 587 # (I've also tried 25, 465, & 2587)
EMAIL_HOST_USER = ''
EMAIL_PASSWORD = ''
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'example@example.com' # but my real email address

我的电子邮件\u主机\u用户和电子邮件\u密码设置为我的SMTP凭据,我是通过以下地址的说明获得的:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html

此外,我一定要验证我的DEFAULT_FROM_EMAIL和我的域名遵循以下指示:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html

DKIM已启用,并且我的名称服务器已更新。

任何帮助都将不胜感激。

更新:

我能够通过django ses第三方库获得django电子邮件发送,但我仍然无法找出标准后端无法通过SMTP工作的原因。

我认为我的代码肯定有问题,因为我甚至将电子邮件客户端从AWS SES切换到Zoho mail,我仍然收到相同的530身份验证要求错误。

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'support@example.com'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'support@example.com'
EMAIL_PASSWORD = ''

共有2个答案

苏法
2023-03-14

如果要求认证,请仔细检查以下内容:

  • 您的SMTP设置
  • 你试图发送邮件的电子邮件属于验证过的域。例如,如果你已经验证了example.com,但是你试图从something@gmail.com发送邮件,它是去要求gmail认证凭证。
施飞鸿
2023-03-14

2021年:Django-3.2.4

不需要库,如django-sesdjango-amazon-ses!!

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my_smtp_username'      # Must create SMTP Credentials
EMAIL_HOST_PASSWORD = 'my_smtp_password'  # Must create SMTP Credentials
DEFAULT_FROM_EMAIL = 'myses@sender.com'

对于电子邮件\u主机,选择SMTP设置

然后,将Server Name放入EMAIL_HOST

EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'

对于电子邮件\u主机\u用户电子邮件\u主机\u密码,必须创建SMTP凭据

创建我的SMTP凭据按钮:

给定的SMTP凭据:

然后,将SMTP凭据放入以下位置:

EMAIL_HOST_USER = 'AKIAWP3TMGZN4OZH5H37'
EMAIL_HOST_PASSWORD = 'BB6dufiw96jJHUTrowXI8R4gcyOI+t1+Skbi51cdHYhV'

*(我已经删除了这些SMTP凭据

此外,对于电子邮件中的DEFAULT\u,无论您的帐户是否在沙箱中,都要放入一个验证域电子邮件地址

因此,对于已验证的域发送方。com

以下三个是有效的:(只使用三个中的一个)

DEFAULT_FROM_EMAIL = 'abc@sender.com' # OR
DEFAULT_FROM_EMAIL = 'test@sender.com' # OR
DEFAULT_FROM_EMAIL = 'myses@sender.com'

但是下面这两个是无效的:(它们给你错误)

*格式必须为something@sender.com!!

DEFAULT_FROM_EMAIL = 'sender.com' 
DEFAULT_FROM_EMAIL = '@sender.com'

然后,对于下面已验证的2个电子邮件地址

只需使用以下两个中的一个:

DEFAULT_FROM_EMAIL = 'hello@gmail.com' # OR
DEFAULT_FROM_EMAIL = 'world@outlook.com'

 类似资料:
  • 如果不使用JavaScript,那么仅使用Django如何做到这一点呢?

  • 问题内容: 但是我已经尝试了一天多了,以获取与Django一起使用的电子邮件。 我收到此错误消息:当我尝试发送电子邮件时 这是我创建电子邮件并尝试在其视图中发送的地方: 我的设置文件如下: 我尝试过使用进行测试发送python -m smtpd -n -c DebuggingServer localhost:1025并获得了成功,但是当最终归结为真正却没有成功时。 当我尝试从外壳执行send_ma

  • 我有一个django项目,收到一封电子邮件,通知我应该把我的ses签名从v2改为v4。我按照本教程创建了一个新的IAM用户https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html并附加了以下策略: '{ }` 我正在使用这个库https://pypi.org/project/django-ses/,但收到

  • 我有两个php值,分别是$email和$pass。 email-MySQL数据库中的行名称password-MySQL数据库中的行名称 我正在运行一个sql查询,从电子邮件=$email和密码=$pass的表成员中进行选择。 然后我运行mysqli_query,看看是否存在一行,我没有得到任何结果。回声肯定会回声出信息匹配的地方的ID。

  • 问题内容: 我希望django通过电子邮件而非用户名对用户进行身份验证。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个,所以我不能有一个。 另一个原因是所有电子邮件都是唯一的,但有时用户名已被使用。因此,我将自动创建用户名为。 我该如何更改才能让Django通过电子邮件进行身份验证? 这就是我创建用户的方式。 这就是我的登录方式。 除了先获取用户名外,登录还有其他方法吗?

  • 我希望django通过电子邮件而不是用户名来验证用户。一种方法是提供电子邮件值作为用户名值,但我不希望这样。原因是,我有一个url