smtpd.md
1> **Источник:** https://python-all.ru/3.1/library/smtpd.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 20.16. `smtpd` – SMTP-сервер89Этот модуль предоставляет несколько классов для реализации SMTP-серверов. Один из них – универсальная реализация, которая ничего не делает и может быть переопределена, а два других предлагают конкретные стратегии отправки почты.1011## 20.16.1. Объекты SMTPServer1213#### `class smtpd.SMTPServer(localaddr, remoteaddr)`1415Создаёт новый объект [`SMTPServer`](https://python-all.ru/3.1/library/smtpd.html#smtpd.SMTPServer), который привязывается к локальному адресу *localaddr*. Он будет рассматривать *remoteaddr* как вышестоящий SMTP-ретранслятор. Он наследуется от [`asyncore.dispatcher`](https://python-all.ru/3.1/library/asyncore.html#asyncore.dispatcher) и, таким образом, при создании встраивается в цикл событий [`asyncore`](https://python-all.ru/3.1/library/asyncore.html#module-asyncore).1617#### `process_message(peer, mailfrom, rcpttos, data)`1819Вызывает исключение2021[`NotImplementedError`](https://python-all.ru/3.1/library/exceptions.html#NotImplementedError)2223. Переопределите этот метод в подклассах, чтобы выполнять с этим сообщением полезные действия. Всё, что было передано в конструктор как2425*remoteaddr*2627, будет доступно как2829`_remoteaddr`3031атрибут.3233*peer*3435– адрес удалённого хоста,3637*mailfrom*3839– отправитель конверта,4041*rcpttos*4243– получатели конверта, а4445*data*4647– строка с содержимым письма (должна быть в формате4849[**RFC 2822**](https://python-all.ru/3.1/library/smtpd.html)5051формат).5253## 20.16.2. Объекты DebuggingServer5455#### `class smtpd.DebuggingServer(localaddr, remoteaddr)`5657Создаёт новый отладочный сервер. Аргументы такие же, как у5859[`SMTPServer`](https://python-all.ru/3.1/library/smtpd.html#smtpd.SMTPServer)6061. Сообщения будут отброшены и выведены в stdout.6263## 20.16.3. Объекты PureProxy6465#### `class smtpd.PureProxy(localaddr, remoteaddr)`6667Создаёт новый чистый прокси-сервер. Аргументы такие же, как у6869[`SMTPServer`](https://python-all.ru/3.1/library/smtpd.html#smtpd.SMTPServer)7071. Всё будет ретранслироваться на7273*remoteaddr*7475. Имейте в виду, что запуск этого сервера может превратить вас в открытый ретранслятор, поэтому будьте осторожны.7677## 20.16.4. Объекты MailmanProxy7879#### `class smtpd.MailmanProxy(localaddr, remoteaddr)`8081Создаёт новый чистый прокси-сервер. Аргументы такие же, как у8283[`SMTPServer`](https://python-all.ru/3.1/library/smtpd.html#smtpd.SMTPServer)8485. Всё будет ретранслироваться на8687*remoteaddr*8889, если только локальные настройки mailman не знают об адресе – в этом случае он будет обработан через mailman. Имейте в виду, что запуск этого сервера может превратить вас в открытый ретранслятор, поэтому будьте осторожны.90