UnicodeEncodeError: ascii codec cannot encode characters at positions 5-6: serial number not in range (128)

I tried just using gmail through python via SMTP. However, no matter what I tried, it still showed a UnicodeEncodeError

import smtplib
import sys
print(sys.getdefaultencoding())
host = "smtp.gmail.com"
port = 587
username = "ppapa@gmail.com"
password = "ppapapxasfsdfsdfsdfsd"

email_conn = smtplib.SMTP(host,port) #call smtp method 
email_conn.ehlo()

Error:

utf-8
Traceback (most recent call last):
  File "Useemail.py", line 10, in <module>
    email_conn.ehlo()
  File "C:\Users\Lance\Anaconda3\lib\smtplib.py", line 439, in ehlo
    self.putcmd(self.ehlo_msg, name or self.local_hostname)
  File "C:\Users\Lance\Anaconda3\lib\smtplib.py", line 366, in putcmd
    self.send(str)
  File "C:\Users\Lance\Anaconda3\lib\smtplib.py", line 351, in send
    s = s.encode(self.command_encoding)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-6: ordinal not in range(128)
>>> 
+4
source share
1 answer

I have a similar problem today.

The problem I discovered is that mine from_addrhad UTF-8 characters. You can try to install email_conn.command_encoding = 'utf-8'.

0
source

Source: https://habr.com/ru/post/1661448/


All Articles