问题描述
出于某种原因,我在运行此代码时出错:
with smtplib.SMTP_SSL('smtp.yandex.com.tr',465) as server:
server.login(email_from,password_from)
server.sendmail(
from_addr='mymail@yandex.ru',to_addrs='yourmail@yandex.ru',msg='Hello'
)
错误是:
Traceback (most recent call last):
File "report.py",line 86,in <module>
send_report()
File "report.py",line 82,in send_report
notificate(*create_html_msg())
File "report.py",line 69,in notificate
with smtplib.SMTP_SSL('smtp.yandex.com.tr',465,context=context) as server:
File "/usr/lib/python3.8/smtplib.py",line 1034,in __init__
SMTP.__init__(self,host,port,local_hostname,timeout,File "/usr/lib/python3.8/smtplib.py",line 253,in __init__
(code,msg) = self.connect(host,port)
File "/usr/lib/python3.8/smtplib.py",line 339,in connect
self.sock = self._get_socket(host,self.timeout)
File "/usr/lib/python3.8/smtplib.py",line 1040,in _get_socket
new_socket = socket.create_connection((host,port),File "/usr/lib/python3.8/socket.py",line 808,in create_connection
raise err
File "/usr/lib/python3.8/socket.py",line 796,in create_connection
sock.connect(sa)
OSError: [Errno 101] Network is unreachable
操作系统是 Ubuntu 20.04。我的代码在另一台机器上完美运行,所以问题显然出在机器的某个地方。
我试过了:
sudo ufw allow 465/tcp
我还安装并运行了 postfix 邮件服务器并将其添加到 /etc/postfix/main.cf:
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
然后用
重新启动postfixsudo systemctl restart postfix
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)