'utf-8'编解码器无法解码位置1中的字节0xf4:无效的连续字节

问题描述 投票:1回答:3

我尝试发送电子邮件,感谢python脚本,它不起作用。我尝试了不同的邮件地址(Hotmail和Gmail),不同的端口等等。没有一个正在工作,即使我只写了两行代码,我总是有相同的地址。我也尝试使用Latin-1或utf-8编码......没有任何改变!

我在Windows 10上使用anaconda和python 3.6。

代码:

import smtplib
serveur = smtplib.SMTP('smtp.gmail.com',587)

而错误:

runfile('C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts/sanstitre3.py', wdir='C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts')
Traceback (most recent call last):

File "<ipython-input-1-a733f02e7871>", line 1, in <module>
runfile('C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts/sanstitre3.py', wdir='C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts')

File "D:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile 
execfile(filename, namespace)

File "D:\Anaconda\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile 
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/Come/AppData/Roaming/Microsoft/Windows/Network Shortcuts/sanstitre3.py", line 9, in <module>
serveur = smtplib.SMTP('smtp.gmail.com',587)

File "D:\Anaconda\lib\smtplib.py", line 261, in __init__
fqdn = socket.getfqdn()

File "D:\Anaconda\lib\socket.py", line 673, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 1: invalid continuation byte

编辑:

到目前为止,我尝试了不同的东西但没有任何效果

没有我的代码开头像:

# -*- coding:Latin-1 -*-
import smtplib
import socket
hostname, aliases, ipaddrs = socket.gethostbyaddr('smtp.gmail.com')
socket.getfqdn()
socket.gethostname()
serveur = smtplib.SMTP("smtp.gmail.com",587)
serveur.ehlo()

我也ping smtp.gmail.com,这是结果,所有看起来都是有序的...但它仍然无法正常工作(我还检查了我的文件名中是否有任何特定字符)

Envoi d’une requête 'ping' sur gmail-smtp-msa.l.google.com [74.125.206.108] avec 32 octets de données :
Réponse de 74.125.206.108 : octets=32 temps=8 ms TTL=47
Réponse de 74.125.206.108 : octets=32 temps=7 ms TTL=47
Réponse de 74.125.206.108 : octets=32 temps=7 ms TTL=47
Réponse de 74.125.206.108 : octets=32 temps=6 ms TTL=47

Statistiques Ping pour 74.125.206.108:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 6ms, Maximum = 8ms, Moyenne = 7ms

最后我不认为错误来自消息,因为到目前为止它只是“我的消息”......

编辑2:

我可能已经发现了问题,但我不知道如何解决它!

如果我直接写这些行:

In[59]: import socket

In[60]: socket.gethostname()
Out[60]: 'Côme'

我可以看到主机名存在问题...但我不知道如何更改它。

python encoding windows-10 anaconda smtplib
3个回答
1
投票

所以问题不是脚本而是计算机本身的名称!

如果您遇到同样的问题,请更改您的计算机名称,它应该可以工作!

谢谢你的帮助....


-1
投票

使用:

serveur = smtplib.SMTP('smtp.gmail.com:587')

-2
投票

你试过 serveur = smtplib.SMTP('smtp.gmail.com'.encode('utf8'),587) 吗?

© www.soinside.com 2019 - 2024. All rights reserved.