通过Amazon SES从Django发送邮件

我正在尝试通过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中验证了电子邮件地址。我丢失了什么?

conandx 回答:通过Amazon SES从Django发送邮件

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

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

DEFAULT_FROM_EMAIL = 'info@example.com'

请勿将email_from作为显式设置传递给send_mail,除非您要为特定电子邮件覆盖它(例如,从info@...发送某些电子邮件,为newsletter@...发送特定电子邮件)其他类型的电子邮件)。

本文链接:https://www.f2er.com/2887437.html

大家都在问