无法向 sendgrid python 发送电子邮件

时间:2021-05-04 07:41:09

标签: python django django-rest-framework sendgrid

我的 send_mail 代码

from rest_framework.views import APIView
from middleware.response import success, bad_request
from user.serializer.dao import SendEmailDao
from core.models import EmailLeadLogs
from util.email import send_mail


class SendEmailView(APIView):

    def post(self, request):
        attributes = SendEmailDao(data=request.data)
        if not attributes.is_valid():
            return bad_request(attributes.errors)

        email_lead_logs = EmailLeadLogs(**attributes.data["meta"])
        email_lead_logs.subject = attributes.data["subject"]
        email_lead_logs.save()

        send_mail(attributes.data["email"].split(","), attributes.data["subject"], attributes.data["message"])

        return success({}, "email send successfully", True)

这是我收到的错误,我正在尝试从 drf 中使用它

error

1 个答案:

答案 0 :(得分:0)

确保您的电子邮件设置在 settings.py 中正确连接很重要。以下是我在配置 Sendgrid 时使用的选项(您可能不需要全部):

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
DEFAULT_FROM_EMAIL = 'myemail@email.com'
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
EMAIL_PORT = 587
EMAIL_USE_TLS = True
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
ACCOUNT_EMAIL_SUBJECT_PREFIX = 'Hello'
ACCOUNT_EMAIL_REQUIRED = False
ACCOUNT_EMAIL_VERIFICATION = 'optional'

EMAIL_HOST_PASSWORD 是 Sendgrid 为您提供的 API 密钥。