当我使用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
大多数大型组织,如拥有训练有素、知识渊博的IT员工的大学,都会制定有关使用信息技术资源的政策
这些策略是通过各种措施实施的,例如防火墙设置以阻止特定主机或特定端口、资源限制(最大磁盘空间分配、限制前允许的最大网络带宽等)、允许使用哪些协议以及可以使用哪些版本的软件
一个简单的测试是使用
telnet
等应用程序尝试在您的主机、Raspberry Pi和大学网络之外的主机之间创建网络连接。例如telnet smtp.example.com 587
来看看这是否有效您可能遇到大学防火墙设置,该设置阻止了587端口的使用。或者你可能会遇到这样的问题:大学网络不识别你的Raspberry Pi,拒绝让它使用网络
在不知道失败的具体原因的情况下,很难说,但是我认为最好的做法是与大学的it员工交谈,了解大学的政策是什么,你正在尝试做什么
对话结束后,您将能够确定您的选择
一种解决方法是将Raspberry Pi置于大学网络之外,并远程访问它
相关问题 更多 >
编程相关推荐