如何解决操作系统错误:[Errno 101]网络无法访问?

2024-07-05 12:38:29 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用smtplib时,似乎出现了一个问题。当我在家里,在笔记本电脑上尝试时,效果很好。当我在大学里,用覆盆子尝试时,它失败了。 问题似乎在于大学代理,它阻止了smtplib

如果是这样,如何解决这个问题? 如果不是,还有什么其他原因

import smtplib 

gmailaddress = 'probnimejl@exapmple.com'
gmailpassword = 'password'
mailto = 'probnimejl@example.com'
msg = str(input("What is your message? \n "))

mailServer = smtplib.SMTP('smtp.example.com' , 587)
mailServer.starttls()
mailServer.login(gmailaddress , gmailpassword)
mailServer.sendmail(gmailaddress, mailto , msg)
print(" \n Sent!")
mailServer.quit()

当我运行这段代码时,我得到以下错误

Traceback (most recent call last):
  File "test2.py", line 9, in <module>
    mailServer = smtplib.SMTP('smtp.example.com' , 587)
  File "/usr/lib/python3.4/smtplib.py", line 242, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.4/smtplib.py", line 321, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python3.4/smtplib.py", line 292, in _get_socket
    self.source_address)
  File "/usr/lib/python3.4/socket.py", line 512, in create_connection
    raise err
  File "/usr/lib/python3.4/socket.py", line 503, in create_connection
    sock.connect(sa)
OSError: [Errno 101] Network is unreachable

Tags: inpyselfcomexamplelibusrconnect
1条回答
网友
1楼 · 发布于 2024-07-05 12:38:29

大多数大型组织,如拥有训练有素、知识渊博的IT员工的大学,都会制定有关使用信息技术资源的政策

这些策略是通过各种措施实施的,例如防火墙设置以阻止特定主机或特定端口、资源限制(最大磁盘空间分配、限制前允许的最大网络带宽等)、允许使用哪些协议以及可以使用哪些版本的软件

一个简单的测试是使用telnet等应用程序尝试在您的主机、Raspberry Pi和大学网络之外的主机之间创建网络连接。例如telnet smtp.example.com 587来看看这是否有效

您可能遇到大学防火墙设置,该设置阻止了587端口的使用。或者你可能会遇到这样的问题:大学网络不识别你的Raspberry Pi,拒绝让它使用网络

在不知道失败的具体原因的情况下,很难说,但是我认为最好的做法是与大学的it员工交谈,了解大学的政策是什么,你正在尝试做什么

对话结束后,您将能够确定您的选择

一种解决方法是将Raspberry Pi置于大学网络之外,并远程访问它

相关问题 更多 >