Рейтинг:0

Не удалось подключиться к SMTP — «smtp.outlook.com», 587 с использованием Python2.7 с сервера Linux.

флаг in

У меня есть небольшой скрипт Python ниже, который отправляет электронные письма на электронную почту Outlook моей компании. он отлично работает на моем персональном компьютере, но когда я развертываю его на сервере, он продолжает работать и тайм-аут, но не отправляет электронную почту.

импорт ОС
импорт smtplib
подпроцесс импорта
из системного импорта выход

cmd = 'дф-х'
p1 = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
станд, ошибка = p1.коммуникация()
вывод = std.decode ()
#print (вывод)
smtp=smtplib.SMTP('smtp.outlook.com', 587)
smtp.ehlo()
smtp.starttls()
smtp.ehlo()

smtp.login('электронная почта','пароль')


subject = 'Send_Disk_Info_Daily'
тело = выход;

msg = (("subject : {} ".format(subject))+("\n\n{}".format(body)))

smtp.sendmail('электронная почта', 'электронная почта',сообщение)

smtp.выход()

Ниже приведена ошибка, когда время ожидания истекло:

Traceback (последний последний вызов):
  Файл "send_disk_info.py", строка 16, в <module>
    smtp=smtplib.SMTP_SSL('smtp.outlook.com', 587, время ожидания=20)
  Файл "/usr/lib64/python2.7/smtplib.py", строка 789, в __init__
    SMTP.__init__(self, host, port, local_hostname, timeout)
  Файл "/usr/lib64/python2.7/smtplib.py", строка 255, в __init__
    (код, сообщение) = self.connect(хост, порт)
  Файл "/usr/lib64/python2.7/smtplib.py", строка 315, при подключении
    self.sock = self._get_socket (хост, порт, self.timeout)
  Файл "/usr/lib64/python2.7/smtplib.py", строка 794, в _get_socket
    new_socket = socket.create_connection((хост, порт), время ожидания)
  Файл "/usr/lib64/python2.7/socket.py", строка 571, в create_connection
    поднять ошибку
socket.error: [Errno 101] Сеть недоступна

Я не могу подключиться к Outlook через telnet, время ожидания истекает. Смотри ниже:-

[linux_server Python]$ телнет smtp.outlook.com 587
Пытаюсь 40.101.4.2...

^ С
[linux_сервер Python]$

ниже прослушиваемые порты на этом сервере.

linux_server Python]$ netstat -tulpn|grep -i listen
(Не все процессы могут быть идентифицированы, информация о процессах, не принадлежащих
 не будет отображаться, вам нужно быть root, чтобы увидеть все это.)
TCP 0 0 0.0.0.0:5666 0.0.0.0:* ПРОСЛУШАТЬ -
TCP 0 0 127.0.0.1:199 0.0.0.0:* ПРОСЛУШАТЬ -
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШАТЬ -
TCP 0 0 127.0.0.1:25 0.0.0.0:* ПРОСЛУШАТЬ -
tcp6 0 0 :::5666 :::* СЛУШАТЬ -
tcp6 0 0 :::37712 :::* ПРОСЛУШАТЬ 45077/java
tcp6 0 0 :::8080 :::* ПРОСЛУШАТЬ 44458/java
tcp6 0 0 :::8085 :::* ПРОСЛУШАТЬ 44458/java
tcp6 0 0 :::22 :::* СЛУШАТЬ -
tcp6 0 0 ::1:25 :::* СЛУШАТЬ -
tcp6 0 0 :::32858 :::* ПРОСЛУШАТЬ 44648/java
[linux_сервер Python]$

Может ли кто-нибудь помочь мне понять проблему и исправить ее. Или есть ли альтернативный способ настроить этот скрипт отправки электронной почты. Любая помощь приветствуется. Заранее спасибо !

vidarlo avatar
флаг ar
*Где* вы его развертываете? Похоже, порт 587 заблокирован для исходящего трафика оттуда, где вы находитесь.
Dharmendra Kumar avatar
флаг in
@vidarlo да, похоже. Какие еще альтернативные способы?
vidarlo avatar
флаг ar
Поговорите с поставщиком, чтобы узнать, что они предлагают.
Dharmendra Kumar avatar
флаг in
Поставщик @vidarlo означает владельца сервера?
vidarlo avatar
флаг ar
да это правильно

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.