Содержание страницы
20.16. smtpd – SMTP-сервер¶smtpd – SMTP Server
Этот модуль предоставляет несколько классов для реализации SMTP-серверов. Один из них – универсальная реализация, которая ничего не делает и может быть переопределена, а два других предлагают конкретные стратегии отправки почты.
20.16.1. Объекты SMTPServer¶SMTPServer Objects
- class smtpd.SMTPServer(localaddr, remoteaddr)¶
Создаёт новый объект SMTPServer, который привязывается к локальному адресу localaddr. Он будет рассматривать remoteaddr как вышестоящий SMTP-ретранслятор. Он наследуется от asyncore.dispatcher и, таким образом, при создании встраивается в цикл событий asyncore.
- process_message(peer, mailfrom, rcpttos, data)¶
- Вызывает исключение NotImplementedError. Переопределите этот метод в подклассах, чтобы выполнять с этим сообщением полезные действия. Всё, что было передано в конструктор как remoteaddr, будет доступно как _remoteaddr атрибут. peer – адрес удалённого хоста, mailfrom – отправитель конверта, rcpttos – получатели конверта, а data – строка с содержимым письма (должна быть в формате RFC 2822 формат).
20.16.2. Объекты DebuggingServer¶DebuggingServer Objects
- class smtpd.DebuggingServer(localaddr, remoteaddr)¶
- Создаёт новый отладочный сервер. Аргументы такие же, как у SMTPServer. Сообщения будут отброшены и выведены в stdout.
20.16.3. Объекты PureProxy¶PureProxy Objects
- class smtpd.PureProxy(localaddr, remoteaddr)¶
- Создаёт новый чистый прокси-сервер. Аргументы такие же, как у SMTPServer. Всё будет ретранслироваться на remoteaddr. Имейте в виду, что запуск этого сервера может превратить вас в открытый ретранслятор, поэтому будьте осторожны.
20.16.4. Объекты MailmanProxy¶MailmanProxy Objects
- class smtpd.MailmanProxy(localaddr, remoteaddr)¶
- Создаёт новый чистый прокси-сервер. Аргументы такие же, как у SMTPServer. Всё будет ретранслироваться на remoteaddr, если только локальные настройки mailman не знают об адресе – в этом случае он будет обработан через mailman. Имейте в виду, что запуск этого сервера может превратить вас в открытый ретранслятор, поэтому будьте осторожны.