[通过Amazon SES从Django发送邮件

问题描述 投票:0回答:1

我正在尝试通过Amazon SES从我的django应用发送邮件,但我不断收到以下错误:

smtplib.SMTPSenderRefused:(501,b'Invalid MAIL FROM address提供”,'=?utf-8?q?AKIAWMDVL5UEWNT3ODOO?=')

这些是我正在使用的设置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.ap-south-1.amazonaws.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'smtp credential key'
EMAIL_HOST_PASSWORD = 'smtp credential password'
EMAIL_USE_TLS = True

这是代码:

class CompanyCreateAPIView(APIView):
    permission_classes = (permissions.AllowAny,)
    def post(self, request):
        email = request.data["company_email"]
        phone = request.data["company_phone"]

        def random_with_N_digits(n):
            range_start = 10 ** (n - 1)
            range_end = (10 ** n) - 1
            return randint(range_start, range_end)

        code = random_with_N_digits(4)

        subject = 'Comapny Creation'
        message = 'Company Code is {}'.format(code)
        email_from = settings.EMAIL_HOST_USER
        recipient_list = [str(email), ]
        send_mail(subject, message, email_from, recipient_list)

我尝试更改端口,但是它不起作用,我已经在SES中验证了电子邮件地址。我丢失了什么?

django amazon-web-services amazon-ses
1个回答
0
投票

您可能不希望将SMTP凭据用户名用作“电子邮件发件人”值。那应该是人类可读的内容,无论您希望收件人将什么作为电子邮件的发件人地址。该地址和/或域也需要在SES设置中列入白名单。

在Django的settings.py中,将DEFAULT_FROM_EMAIL设置设置为该地址:

DEFAULT_FROM_EMAIL

除非您要对特定电子邮件覆盖DEFAULT_FROM_EMAIL = '[email protected]' ,否则不要将email_from作为显式设置传递给它(例如,对于某些电子邮件,从send_mail发送,对于其他类型的电子邮件,从info@...发送)。

© www.soinside.com 2019 - 2024. All rights reserved.