Как создать рабочий SMTPS-сервер на порту 465 с помощью Python?Python

Программы на Python
Ответить
Anonymous
 Как создать рабочий SMTPS-сервер на порту 465 с помощью Python?

Сообщение Anonymous »

Я пытаюсь настроить SMTPS-сервер на порту 465, используя Python и библиотеку aiosmtpd. Хотя я могу подключиться к серверу локально с помощью openssl s_client, внешние почтовые серверы (например, Gmail) не могут подключиться и сообщают об ошибке «Соединение отклонено».
Вот мой текущий код:

Код: Выделить всё

import asyncio
import ssl
from aiosmtpd.controller import Controller
from aiosmtpd.handlers import Debugging

async def main():
ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain(
certfile='./certs/fullchain.pem',
keyfile='./certs/privkey.pem'
)

controller = Controller(
handler=Debugging(),
hostname='0.0.0.0',
port=465,
ssl_context=ssl_context
)

controller.start()
print("SMTPS server started on port 465...")

try:
await asyncio.sleep(3600)
finally:
controller.stop()

if __name__ == "__main__":
asyncio.run(main())
Хотя он работает нормально, когда я отключаю шифрование TLS и меняю номер порта на 25.
Я это проверил:
  • Сервер запускается без ошибок.
  • Я могу подключиться к своему серверу с помощью openssl s_client -connect my_domain.example.com:465.
  • Порт В моем брандмауэре открыт 465.
  • Сертификаты SSL действительны и соответствуют имени домена.
Я знаю что есть еще SMTP с протоколом STARTTLS на порту 587, но в моем конкретном случае использования мне нужен именно SMTPS на порту 465.
Дополнительная информация:
Версия Python: 3.12.3. ОС: сервер Ubuntu 24
Будем очень признательны за любую помощь или рекомендации. Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»