【发布时间】:2017-12-29 07:42:20
【问题描述】:
感谢 python 脚本,我尝试发送电子邮件,但它不起作用。我尝试了不同的邮件地址(Hotmail 和 Gmail)、不同的端口等,但都没有工作,即使我只写了两行代码,我也总是拥有相同的地址。我也尝试了 Latin-1 或 utf-8 编码...没什么变化!
我正在 windows10 上使用 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'
我可以看到主机名有问题...但我不知道如何更改它。
【问题讨论】:
-
好的,我已经在脚本的开头指定了编码,我没有 $open$ 左右...我应该在其他地方指定编码吗?
-
我没有看到任何...我在我的桌面上创建了一个测试文件
-
socket.gethostbyaddr('smtp.gmail.com')是否也出现同样的错误?您也为其他主机获得它吗?
标签: python encoding windows-10 anaconda smtplib