# ric930-fake-smtp Fake SMTP сервер для ИВ КонсультантПлюс. Принимает любые соединения с именем пользователя и паролем, сохраняет письма в формате `.eml` с иерархической структурой папок. ## Особенности - ✅ RFC 5321 (SMTP протокол) - ✅ Работа как systemd сервис на Linux и как Windows Service ## Требования - Go 1.21 или выше ## Сборка из исходников ### 1. Клонирование репозитория ```bash https://git.stelm.me/ric930/ric930-fake-smtp.git cd ric930-fake-smtp go mod init ric930-fake-smtp go get github.com/kardianos/service ``` ### 2. Сборка бинарников ```bash GOOS=linux GOARCH=amd64 go build -o ric930-fake-smtp ``` или ```bash GOOS=windows GOARCH=amd64 go build -o ric930-fake-smtp.exe ``` ### 3. Запуск и установка в режиме службы При первом запуске будет зоздан config.json с параметрами по умолчанию. Запуск в интерактивном режиме: ```bash ./ric930-fake-smtp или ./ric930-fake-smtp.exe (для Windows) ``` Установка в качестве systemd юнита: ```bash ./ric930-fake-smtp install sudo systemctl daemon-reload sudo systemctl status ric930-fake-smtp sudo systemctl enable --now ric930-fake-smtp sudo journalctl -fu ric930-fake-smtp ``` Установка в качестве службы в Windows: ```bash ./ric930-fake-smtp.exe install ``` ### 4. Файл конфигурации config.json находится рядом с бинарным файлом или указывается в параметре --config path/to/config.json Секции файла не требуют особых пояснений и интуитивно понятные. ### 5. Конфигурация online.ini ```bash ... AdminEmail = admin@local.host ; e-mail администратора SMTPServer = 127.0.0.1 ; адрес почтового сервера для исходящих сообщений SMTPUseSSL = 0 ; (default = 0) 0/1 выключить/включить поддержку шифрованных протоколов SSL/TLS для работы с почтовыми серверами SMTPPort = 1025 ; порт для сервера исходящих сообщений (default = 25), для SSL/TLS 465 или 587 ;SMTPLogin = ; логин для сервера исходящих сообщений ;SMTPPwd = ; пароль для сервера исходящих собщений ... ``` ### 6. Восстановление пароля пользователя consultant и получение паролей других пользователей После внесения изменений в файлы конфигурации online.ini и config.json можно приступать к процедуре восстановления пароля пользователя consultant. В форме восстановления необходио указать: ```bash Логин: consultant Email: admin@local.host (берется из поля AdminEmail файла online.ini) Тескт с капчи ``` и нажать кнопку "Отправить". Если все указано и настроено правильно, то в интерфейсе будет сообщение о том, что пароль будет отправлен в сообщении email. можно проверить каталог emails (или иной, указанный в config.json) на наличии нового файла .eml, который и есть отправленное сообщение. Файл можно открыть в любой почтовой программе или текстовом редакторе.