django send_email [Errno 99] Cannot assign requested address

from django.core.mail import send_mail
 
 
send_mail(subject="subject",
          message="message",
          from_email='EMAIL_HOST_USER',                 
          recipient_list=['EMAIL_RECIPIENT'])

报错:

[Errno 99] Cannot assign requested address

问题原因:

查看源码

 
def send_mail(subject, message, from_email, recipient_list,
              fail_silently=False, auth_user=None, auth_password=None,
              connection=None, html_message=None):
    """
    Easy wrapper for sending a single message to a recipient list. All members
    of the recipient list will see the other recipients in the 'To' field.
    If auth_user is None, use the EMAIL_HOST_USER setting.
    If auth_password is None, use the EMAIL_HOST_PASSWORD setting.
    Note: The API for this method is frozen. New code wanting to extend the
    functionality should use the EmailMessage class directly.
    """
    connection = connection or get_connection(
        username=auth_user,
        password=auth_password,
        fail_silently=fail_silently,
    )
    mail = EmailMultiAlternatives(subject, message, from_email, recipient_list, connection=connection)
    if html_message:
        mail.attach_alternative(html_message, 'text/html')
 
    return mail.send()

注意注释:

 If auth_user is None, use the EMAIL_HOST_USER setting.
 If auth_password is None, use the EMAIL_HOST_PASSWORD setting.

如果settings.py没有配置EMAIL_HOST_USER和 EMAIL_HOST_PASSWORD,需要手动传入auth_user和auth_password.

 

from django.core.mail import send_mail
 
 
send_mail(subject="subject",
          message="message",
          from_email='EMAIL_HOST_USER',                 
          recipient_list=['EMAIL_RECIPIENT'],
          auth_user='zhangsan',
          auth_password='ew33ddds')

 

posted @ 2022-11-10 16:24  琵琶真的行  阅读(58)  评论(0)    收藏  举报