Django send_mail引发错误“'ascii'编解码器无法编码字符”

时间:2020-03-31 22:38:07

标签: python django encode

使用Django创建的网络应用程序,其功能之一是通过电子邮件向通过测试的人发送通知。 在我的settings.py

res/layouts

在我的观点中。py,我有一种通过电子邮件发送通知的方法

      EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
      EMAIL_HOST = 'smtp.gmail.com'
      EMAIL_PORT = '587'
      EMAIL_HOST_USER = 'did****@gmail.com'
      DEFAULT_FROM_EMAIL = 'did****gmail.com'
      EMAIL_HOST_PASSWORD = '*************'
      EMAIL_USE_TLS = True

我尝试使用以下方式对邮件和电子邮件地址进行编码:

    def recrutesdetails(request, id, Pid): ...


        if request.method == "POST":
             sith.resrutesShadowing.add(recruter)
             sith.save()
             message = 'duck'
             subject = 'duck'
             safe_str = smart_str(message)
             safe_sub = smart_str(subject) 
             recipientlist = smart_str(recruter.planetRecruteEmail)
             send_mail(safe_sub, safe_str, from_email = smart_str(settings.DEFAULT_FROM_EMAIL),recipient_list=[recipientlist,] , fail_silently=False)
             return HttpResponseRedirect(reverse( 'recruters', args=[Pid]))

        return render(request,'app/recrutdetail.html', {'recruter': recruter, 'recrList': recrList, 
    'wrongList': wrongList});

但是似乎没有任何作用,我的send_mail()函数引发了其他django lib函数:

message.encode("ascii", errors="ignore")
message.encode('utf-8')
smart_str()

我一直跟踪到:

C:\Users\user..\__init__.py in send_mail
    return mail.send() ...

C:\Users\user...\message.py in send
        return self.get_connection(fail_silently).send_messages([self]) ...

C:\Users\user...\smtp.py in send_messages
            new_conn_created = self.open() ...

C:\Users\user...\smtp.py in open
                self.connection.starttls(keyfile=self.ssl_keyfile, certfile=self.ssl_certfile) ...

C:\Users\user...\smtplib.py in starttls
        self.ehlo_or_helo_if_needed() ...

C:\Users\user...lib\smtplib.py in ehlo_or_helo_if_needed
            if not (200 <= self.ehlo()[0] <= 299): ...

C:\Users\user..\lib\smtplib.py in ehlo
        self.putcmd(self.ehlo_msg, name or self.local_hostname) ...

C:\Users\..\Python\Python35\lib\smtplib.py in putcmd
        self.send(str) ...

已完成所有的Google帐户设置,但无法解决此问题

C:\Users\user\AppData\Local\Programs\Python\Python35\lib\smtplib.py in send
                        **s = s.encode(self.command_encoding)



    s   'ehlo user-ПК\r\n'   self - smtplib.SMTP object at 0x0000000005A7B128>**

错误。

0 个答案:

没有答案
相关问题