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