trashmail
Solution - Получайте электронные письма через Web UI
, JSON API
, RSS feed
и Webhook
RSS feed
для каждого адреса электронной почтыJSON API
для интеграции в ваших собственных проектов. Можно использовать для автоматизации электронных писем 2FAWebhook
для интеграции в свои собственные проектыPlaintext
, STARTTLS
и TLS on connect
Конечная точка | Объяснение | Пример вывода |
---|---|---|
/ rss/ [email-address] | Образует RSS XML для клиентов RSS для рендеринга электронных писем | |
/api/raw/ [email-address]/[id] | Возвращает необработанное письмо адреса. Предупреждение: вывод может быть такой же большой, как и сама электронная почта, поэтому может составлять до 20 МБ для почты с большими вложениями | |
/API/ATTHAMENT [email-address]/[attachment-id] | Возвращает вложение с правильным типом MIME в качестве заголовка | |
/api/delete/ [email-address]/[id] | Удаляет конкретное сообщение электронной почты и их вложения | |
/api/deleteaccount/ [email-address] | Удаляет все сообщения и вложения этой учетной записи электронной почты |
Конечная точка | Объяснение | Пример вывода |
---|---|---|
/ json/ [email-address] | Возвращает массив полученных электронных писем со ссылками на вложения и проанализированный текстовый орган электронной почты. Если введено электронное письмо ADMIN , вернет все электронные письма всех учетных записей | |
/json/ [email-address]/[id] | Чтобы увидеть все данные полученного электронного письма, возьмите идентификатор из предыдущего звонка и опросите его, чтобы получить сырой и HTML -тело электронного письма. Может быть огромным, так как тело может содержать все насадки в Base64 | |
/json/listaccounts | Если SHOW_ACCOUNT_LIST установлен на true в config.ini, эта конечная точка вернет массив всех адресов электронной почты, которые получили хотя бы одну электронную почту |
Просто отредактируйте config.ini
, вы можете использовать следующие настройки
URL
-> URL, под которым будет размещен графический интерфейс. Нет хвостовой черты! Пример: https://trashmail.mydomain.euDOMAINS
-> Отдельный список доменов. Этот почтовый сервер будет получать электронные письма. Это просто так, что веб -интерфейс может генерировать случайные адресаMAILPORT
-> Порт SMTP -сервер Python SMTP будет прослушать. Default: 25
ADMIN
-> Адрес электронной почты (не должен существовать, просто должен быть действительным), который будет перечислять все электронные письма всех адресов, которые получил сервер. Своего рода ловкийDATEFORMAT
-> Как следует отображать временные метки в веб -интерфейсе (Syntax Moment.js)PASSWORD
-> Если настроить, сайт и API не могут быть использованы без предоставления его формы, публикации/получения переменного password
или HTTP Header PWD
(например, curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
-> отдельный список адресов IPv4 или IPv6 CIDR, которым разрешено использовать веб -интерфейс или APIATTACHMENTS_MAX_SIZE
-> MAX Size для каждого отдельного вложения электронной почты в байтахMAILPORT_TLS
-> Если установлено на что -то выше 0, этот порт будет использоваться для TLSC (TLS на Connect). Что означает, что открытый текст Auth не будет возможна. Обычно устанавливается на 465
. Нуждается TLS_CERTIFICATE
и TLS_PRIVATE_KEY
для работыTLS_CERTIFICATE
-> Путь к сертификату (цепь). Может быть относительно каталога /python или абсолютногоTLS_PRIVATE_KEY
-> Путь к закрытому ключу сертификата. Может быть относительно каталога /python или абсолютногоWEBHOOK_URL
-> Если установлено, отправит запрос сообщения на этот URL с данными JSON электронного письма в качестве тела. Можно использовать для интеграции OpenTrashmail в ваши собственные проектыADMIN_ENABLED
-> включает меню администратора. По умолчанию false
ADMIN_PASSWORD
-> Если установлено, нужен этот пароль для доступа к меню администратора В Docker вы можете использовать следующие переменные среды:
Env var | Что он делает | Пример значений |
---|---|---|
URL | URL -адрес веб -интерфейса. Используется кормом API и RSS | http: // localhost: 8080 |
DISCARD_UNKNOWN | Сообщает MailServer, что не удаляется или не удаляет электронные письма, которые адресованы доменам, которые не настроены | Правда, ложь |
Домены | Домены в белом списке, которые сервер будет прослушать. Если DISCARD_UNKNOWN установлен на FALSE, это будет использоваться только для генерации случайных электронных писем в веб -интерфейсе | |
Show_account_list | Если установлено в true , все учетные записи, которые ранее получали электронные письма, могут быть перечислены через API или WebInterface | Правда, ложь |
Администратор | Если установлено на действительный адрес электронной почты, и этот адрес введен в API или WebInterface, покажут все электронные письма всех учетных записей. Вроде всех | [email protected] |
DateFormat | Отформатирует полученную дату в веб -интерфейсе на основе синтаксиса Moment.js | "Мммм, делай ты, ч: мм: сс" " |
Skip_filepermissions | Если установлено в true , не будет исправлять разрешения файлов для папки данных кода в контейнере. Полезно для местного разработки. По умолчанию false | Правда, ложь |
ПАРОЛЬ | Если настроен, сайт и API не могут быть использованы без предоставления его по форме, публиковать/получить переменную password или HTTP -заголовок PWD | yousrstrongpassword |
Разрешен_ис | Отдельный список адресов IPv4 или IPv6 CIDR, которым разрешено использовать веб -интерфейс или API | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
ATTHAMENTS_MAX_SIZE | Максимальный размер для каждого отдельного вложения электронного письма в байтах | 2000000 = 2 МБ |
Mailport_tls | Если установить что -то выше 0, этот порт будет использоваться для TLSC (TLS на Connect). Что означает, что открытый текст Auth не будет возможна. Обычно устанавливается на 465 . Нуждается TLS_CERTIFICATE и TLS_PRIVATE_KEY для работы | 465 |
Tls_certificate | Путь к сертификату (цепь). Может быть относительно каталога /python или абсолютного | /certs/cert.pem или cert.pem если он находится в каталоге Python |
Tls_private_key | Путь к частному ключу сертификата. Может быть относительно каталога /python или абсолютного | /certs/privkey.pem или key.pem если он находится внутри каталога Python |
Webhook_url | Если установлено, отправит запрос на этот URL с данными JSON электронного письма в качестве тела. Можно использовать для интеграции OpenTrashmail в ваши собственные проекты | https://example.com/webhook |
Admin_enabled | Включает меню администратора. По умолчанию false | false / true |
Admin_password | Если установлено, нуждается в этом пароле для доступа к меню администратора | 123456 |
Поскольку V1.3.0 TLS и Starttls поддерживаются Opentrashmail.
Имейте в виду, что есть два способа использования TLS с электронной почтой
Starttls не требует определенного порта, так как он начинается с открытого текста, а затем обновления до TLS, если сервер рекламирует команду «StartTls» (какую OpentRashmail выполняет автоматически, если настроены на настройки сертификата и ключа). Поскольку он запускается в MAILPORT
по умолчанию, вам не нужно открывать другие порты, чтобы он работал.
TLS ON Connect обертывает TLS вокруг открытых портов, поэтому с ним невозможно поговорить в открытом виде, и поэтому ему нужен другой порт для работы. Обычно для этого используется порт 465.
Чтобы TLS работал, вам сначала нужен сертификат, который соответствует имени хоста SMTP -сервера. Это может быть сделано с использованием lets'encrypt и даже работает с сертификатами подстановочных знаков.
Для средств тестирования вы можете создать сертификат, выполнив следующую команду из папки Python:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
Затем вам нужно установить настройки для MAILPORT_TLS
(не требуется, если вы хотите поддерживать starttls), TLS_CERTIFICATE
и TLS_PRIVATE_KEY
.
Файл /docs/dev.md содержит несколько подсказок о том, как отлаживать и проверить соединения TLS и TLSC. Он использует swaks
инструмента, который должен быть доступен в каждом менеджере пакетов.
На вашей панели DNS Создайте запись MX для вашего домена, указывающего на IP -адрес сервера Hosting Opentrashmail.
Следующий пример позволит вам отправлять электронные письма на example.com
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
Этот расширенный пример позволит вам использовать домен подстановочного знака:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
Это в сочетании с опцией конфигурации «домены» (например, параметр docker -e DOMAINS="*.example.com"
) позволит вам использовать любой адрес с любым субдоменом asment.com (например, [email protected], [email protected] и т. Д.)
Простое начало без настойчивости
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
Сохранение каталога данных на хост -машине
docker run -p 80:80 -p 25:25 -e URL= " https://localhost:80 " -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
Полный пример с запуском как Daemon, Persistence, домен для автоматической генерации электронных писем, принимайте только электронные письма для настройки доменов, очистка для почты старше 90 дней и автоматического перезапуска
docker run -d --restart=unless-stopped --name opentrashmail -e " DOMAINS=mydomain.eu " -e " DATEFORMAT='D.M.YYYY HH:mm' " -e " DISCARD_UNKNOWN=false " -e " DELETE_OLDER_THAN_DAYS=90 " -p 80:80 -p 25:25 -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
Сердцем Open Trashmail является SMTP-сервером с питоном , который слушает входящие электронные письма и хранит их в качестве файлов JSON. Сервер не должен знать правильный домен электронной почты, он просто поймает все, что он получает. Вам нужно только разоблачить порт 25 в Интернет и установить запись MX вашего домена, указывающего на IP -адрес вашей машины.