SMTP в частной подсети AWS EC2, сеть недоступна [ошибка 101]

#amazon-web-services #amazon-ec2 #smtp #smtplib #private-subnet

#amazon-web-services #amazon-ec2 #smtp #smtplib #частная подсеть

Вопрос:

Пытаюсь отправить электронные письма с помощью SMTPlib в скрипте python на компьютере с частной подсетью EC2, используя следующий код. Компьютер EC2 поддерживает связь с внутренним SMTP-сервером через PORT 25 , проверено с помощью telnet команды. Этот код отлично работает из общедоступной подсети EC2, но выдает ошибку, указанную внизу, в частной подсети.

 import smtplib
from email.MIMEMultipart import MIMEMultipart  #python 2


msg = MIMEMultipart()
msg['From'] = 'myid@domain.com'
msg['To'] = 'youid@domain.com'
msg['Subject'] = 'simple email in python'
message = 'here is the email'


mailserver = smtplib.SMTP('smtp.gmail.com',25)

mailserver.ehlo()

mailserver.starttls()

mailserver.ehlo()
mailserver.login('myid@domain.com', 'password')

mailserver.sendmail('myid@domain.com','youid@domain.com',msg.as_string())

mailserver.quit()
 

Получение этой ошибки socket.error: errorno[101] - Network is unreachable

Ответ №1:

  • есть ли у вас шлюз NAT в частной подсети, где находится ваш smtp?
  • есть ли у вас активный уровень контроля доступа в той частной подсети, где расположен ваш сервер? Он что-нибудь блокирует?
  • также проверьте правила ACL в общедоступной подсети
  • группа безопасности, подключенная к серверу, открыта ли она?

Ответ №2:

Конфигурация почтового сервера была неправильной, и почтовый сервер не требовал входа в систему.

 mailserver = smtplib.SMTP(internal office server,25)


#mailserver.login('myid@domain.com', 'password') -- Not required for the server
 

Спасибо.