Spec-Zone.ru › Python 2.7

smtpd — SMTP-сервер

Исходный код: Lib/smtpd.py

Этот модуль предлагает несколько классов для реализации SMTP-серверов. Один — это универсальная реализация, ничего не выполняющая, которую можно переопределить, а два других предлагают конкретные стратегии отправки почты.

1. Объекты SMTPServer

class smtpd.SMTPServer(localaddr, remoteaddr)

Создаёт новый объект SMTPServer, который связывается с локальным адресом localaddr. Он будет обрабатывать remoteaddr как SMTP-ретранслятор. И localaddr, и remoteaddr должны быть кортежами (хост, порт). Объект наследуется от asyncore.dispatcher и поэтому вставляет себя в цикл событий asyncore при создании.

process_message(peer, mailfrom, rcpttos, data)

Вызывает исключение NotImplementedError. Переопределите его в подклассах, чтобы сделать что-то полезное с этим сообщением. Переданное в конструкторе значение remoteaddr будет доступно в качестве атрибута _remoteaddr. peer — адрес удалённого хоста, mailfrom — отправитель сообщения, rcpttos — получатели сообщения, а data — строка, содержащая содержимое электронного письма (которое должно быть в формате RFC 2822).

2. Объекты DebuggingServer

class smtpd.DebuggingServer(localaddr, remoteaddr)

Создаёт новый отладочный сервер. Аргументы такие же, как у SMTPServer. Сообщения будут игнорироваться и выводиться на stdout.

3. Объекты PureProxy

class smtpd.PureProxy(localaddr, remoteaddr)

Создаёт новый сервер чистого прокси. Аргументы такие же, как у SMTPServer. Всё будет передаваться по remoteaddr. Обратите внимание, что запуск этого может с высокой вероятностью сделать вас открытым релеем, поэтому будьте осторожны.

4. Объекты MailmanProxy

class smtpd.MailmanProxy(localaddr, remoteaddr)

Создаёт новый сервер чистого прокси. Аргументы такие же, как у SMTPServer. Всё будет передаваться по remoteaddr, если локальные конфигурации Mailman не знают об адресе, в этом случае он будет обработан через Mailman. Обратите внимание, что запуск этого может с высокой вероятностью сделать вас открытым релеем, поэтому будьте осторожны.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/smtpd.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API