Как правильно поддерживать STARTTLS с помощью aiosmtpd?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно поддерживать STARTTLS с помощью aiosmtpd?

Сообщение Anonymous »

У меня есть следующий сервер, взятый почти непосредственно из документации aiosmtpd:

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

import asyncio
import ssl
from aiosmtpd.controller import Controller

class ExampleHandler:
async def handle_RCPT(self, server, session, envelope, address, rcpt_options):
if not address.endswith('@example.com'):
return '550 not relaying to that domain'
envelope.rcpt_tos.append(address)
return '250 OK'

async def handle_DATA(self, server, session, envelope):
print(f'Message from {envelope.mail_from}')
print(f'Message for {envelope.rcpt_tos}')
print(f'Message data:\n{envelope.content.decode("utf8", errors="replace")}')
print('End of message')
return '250 Message accepted for delivery'

context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
controller = Controller(ExampleHandler(), port=8026, ssl_context=context)
controller.start()

input('Press enter to stop')
controller.stop()
Однако, когда я запускаю этот сервер и пытаюсь отправить на него электронное письмо с помощью swaks:

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

echo 'Testing' | swaks --to wayne@example.com --from "something@example.org" --server localhost --port 8026 -tls
Тайм-аут истекает через 30 секунд. Если я удалю ssl_context=context с сервера и -tls с клиента, почта отправится нормально.

Кроме того, когда я попробуйте подключиться через telnet и просто отправить EHLO что угодно, после чего сервер фактически закроет соединение.

Как правильно реализовать сервер aiosmtpd, поддерживающий tls?

Подробнее здесь: https://stackoverflow.com/questions/454 ... h-aiosmtpd
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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