trashmail
autohostado: reciba correos electrónicos a través de Web UI
, JSON API
, RSS feed
y Webhook
RSS feed
para cada dirección de correo electrónicoJSON API
para integrarlo en sus propios proyectos. Se puede usar para automatizar los correos electrónicos de 2FAWebhook
para integrarlo en sus propios proyectosPlaintext
, STARTTLS
y TLS on connect
Punto final | Explicación | Salida de ejemplo |
---|---|---|
/ rss/ [email-address] | Renders RSS XML para que los clientes RSS renderizan correos electrónicos | |
/API/RAW/ [email-address]/[id] | Devuelve el correo electrónico sin procesar de la dirección. Advertencia: la salida puede ser tan grande como el correo electrónico en sí, por lo que puede ser de hasta 20 MB para correos con grandes archivos adjuntos | |
/API/Adjunto [email-address]/[attachment-id] | Devuelve el archivo adjunto con el tipo de MIME correcto como encabezado | |
/API/Eliminar/ [email-address]/[id] | Elimina un mensaje de correo electrónico específico y sus archivos adjuntos | |
/API/DeleteAcCount/ [email-address] | Elimina todos los mensajes y archivos adjuntos de esta cuenta de correo electrónico |
Punto final | Explicación | Salida de ejemplo |
---|---|---|
/ JSON/ [email-address] | Devuelve una variedad de correos electrónicos recibidos con enlaces a los archivos adjuntos y el cuerpo basado en texto analizado del correo electrónico. Si se ingresa el correo electrónico ADMIN , devolverá todos los correos electrónicos de todas las cuentas | |
/JSON/ [email-address]/[id] | Para ver todos los datos de un correo electrónico recibido, tome la identificación de la llamada anterior y encuesten esto para obtener el cuerpo RAW y HTML del correo electrónico. Puede ser enorme ya que el cuerpo puede contener todos los accesorios en Base64 | |
/json/listaccounts | Si SHOW_ACCOUNT_LIST se establece en verdadero en config.ini, este punto final devolverá una matriz de todas las direcciones de correo electrónico que han recibido al menos un correo electrónico |
Simplemente edite el config.ini
puede usar la siguiente configuración
URL
-> La URL bajo la cual se alojará la GUI. ¡Sin barras de cola! Ejemplo: https://trashmail.mydomain.euDOMAINS
-> Lista de dominios separados por comas Este servidor de correo recibirá correos electrónicos. Es solo para que la interfaz web pueda generar direcciones aleatoriasMAILPORT
-> El puerto en el que escuchará el servidor SMTP con pitón. Default: 25
ADMIN
-> Una dirección de correo electrónico (no tiene que existir, solo tiene que ser válida) que enumere todos los correos electrónicos de todas las direcciones que ha recibido el servidor. Una especie de capturaDATEFORMAT
-> ¿Cómo se deben mostrar las marcas de tiempo en la interfaz web (sintaxis de momento.js)PASSWORD
-> Si está configurado, el sitio y la API no se pueden usar sin proporcionarla a través de la forma, publicar/obtener password
variable o encabezado HTTP PWD
(por ejemplo: curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
-> Lista separada por comas de direcciones IPv4 o IPv6 CIDR que se les permite usar la UI o API webATTACHMENTS_MAX_SIZE
-> tamaño máximo para cada archivo adjunto individual de un correo electrónico en bytesMAILPORT_TLS
-> Si se establece en algo más alto que 0, este puerto se utilizará para TLSC (TLS en Connect). Lo que significa que la autenticación de texto sin formato no será posible. Generalmente establecido en 465
. Necesita TLS_CERTIFICATE
y TLS_PRIVATE_KEY
para funcionarTLS_CERTIFICATE
-> ruta al certificado (cadena). Puede ser relativo al directorio /python o absolutoTLS_PRIVATE_KEY
-> Ruta a la clave privada del certificado. Puede ser relativo al directorio /python o absolutoWEBHOOK_URL
-> Si se establece, enviará una solicitud de publicación a esta URL con los datos JSON del correo electrónico como cuerpo. Se puede utilizar para integrar opentrashmail en sus propios proyectosADMIN_ENABLED
-> habilita el menú de administración. Predeterminado false
ADMIN_PASSWORD
-> Si se establece, necesita esta contraseña para acceder al menú de administración En Docker puede usar las siguientes variables de entorno:
Env Var Var | Que hace | Valores de ejemplo |
---|---|---|
Url | La URL de la interfaz web. Utilizado por la alimentación API y RSS | http: // localhost: 8080 |
Descarte_unknown | Le dice a MailServer que esté o no elimine los correos electrónicos que se dirigen a los dominios que no están configurados | verdadero, falso |
Dominio | Los dominios de la lista blanca que el servidor escuchará. Si DISCARD_UNKNOWN se establece en FALSO, esto solo se usará para generar correos electrónicos aleatorios en la Webinterface | |
Show_account_list | Si se establece en true , todas las cuentas que han recibido correos electrónicos previamente se pueden enumerar a través de API o Webinterface | verdadero, falso |
ADMINISTRACIÓN | Si se establece en una dirección de correo electrónico válida y esta dirección se ingresa en la API o WebInterface, mostrará todos los correos electrónicos de todas las cuentas. Un poco de captura | [email protected] |
DateFormat | Formateará la fecha recibida en la interfaz web en función de la sintaxis de momento.js | "Mmmm do yyyy, h: mm: ss a" |
Skip_filePermissions | Si se establece en true , no arreglará los permisos de archivo para la carpeta de datos de código en el contenedor. Útil para el desarrollo local. Predeterminado false | verdadero, falso |
CONTRASEÑA | Si está configurado, el sitio y la API no se pueden usar sin proporcionarlo a través de la forma, publicar/obtener password variable o encabezado HTTP PWD | youSrstrongPassword |
Permitido_ips | Lista separada por comas de direcciones IPv4 o IPv6 CIDR que pueden usar la UI o API web | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
Adjuntos_max_size | Tamaño máximo para cada archivo adjunto individual de un correo electrónico en bytes | 2000000 = 2MB |
Mailport_tls | Si se establece en algo más alto que 0, este puerto se utilizará para TLSC (TLS en Connect). Lo que significa que la autenticación de texto sin formato no será posible. Generalmente establecido en 465 . Necesita TLS_CERTIFICATE y TLS_PRIVATE_KEY para funcionar | 465 |
Tls_certificate | Ruta al certificado (cadena). Puede ser relativo al directorio /python o absoluto | /certs/cert.pem o cert.pem si está dentro del directorio de Python |
TLS_PRIVATE_KEY | Ruta a la clave privada del certificado. Puede ser relativo al directorio /python o absoluto | /certs/privkey.pem o key.pem si está dentro del directorio de Python |
Webhook_url | Si se establece, enviará una solicitud de publicación a esta URL con los datos JSON del correo electrónico como cuerpo. Se puede utilizar para integrar opentrashmail en sus propios proyectos | https://example.com/webhook |
Admin_enabled | Habilita el menú de administración. Predeterminado false | false / true |
Admin_password | Si se establece, necesita esta contraseña para acceder al menú de administración | 123456 |
Dado que V1.3.0 TLS y STARTTLS son compatibles con OpentRashMail.
Tenga en cuenta que hay dos formas de usar TLS con correo electrónico
STARTTLS no requiere un puerto específico, ya que se inicia como texto sin formato y luego se actualiza a TLS si el servidor anuncia el comando "STARTTLS" (que OpentRashMail realiza automáticamente si el certificado y la configuración de clave están configurados). Dado que se ejecuta en el MAILPORT
predeterminado, no necesita abrir otros puertos para que funcione.
TLS On Connect está envolviendo TLS alrededor de los puertos expuestos, por lo que no es posible hablar con él en texto sin formato y, por lo tanto, necesita un puerto diferente para trabajar. Por lo general, el puerto 465 se usa para esto.
Para que TLS funcione, primero necesite un certificado que corresponde con el nombre de host del servidor SMTP. Esto se puede hacer utilizando Lets'encrypt e incluso funciona con certificados comodines.
Para los entornos de prueba, puede crear un certificado ejecutando el siguiente comando desde el interior de la carpeta Python:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
Luego debe establecer la configuración de MAILPORT_TLS
(no es necesario si solo desea admitir STARTTLS), TLS_CERTIFICATE
y TLS_PRIVATE_KEY
.
El archivo /docs/dev.md contiene algunas sugerencias sobre cómo depurar y probar las conexiones TLS y TLSC. Utiliza la herramienta swaks
que debe ser disponible en cada administrador de paquetes.
En su panel DNS, cree un registro MX para su dominio que apunte a la IP del servidor que aloja OpentRashmail.
El siguiente ejemplo le permitirá enviar correos electrónicos a ejemplo.com
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
Este ejemplo avanzado le permitirá usar un dominio comodín:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
Esto en combinación con la opción de configuración "Dominios" (por ejemplo, el parámetro Docker -e DOMAINS="*.example.com"
) le permitirá usar cualquier dirección con cualquier subdominio de Ejemplo.com (por ejemplo, [email protected], [email protected], etc.)
Comienzo simple sin persistencia
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
Guardar directorio de datos en la máquina host
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
Ejemplo completo con ejecutar como demonio, persistencia, un dominio para la generación automática de correos electrónicos, aceptar solo correos electrónicos para dominios configurados, limpieza de correos mayores de 90 días y reinicio automático
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
El corazón de Open Trashmail es un servidor SMTP con pitón que escucha los correos electrónicos entrantes y los almacena como archivos JSON. El servidor no tiene que saber el dominio de correo electrónico correcto, solo atrapará todo lo que recibe. Solo tiene que exponer el puerto 25 a la web y establecer un registro MX de su dominio apuntando a la dirección IP de su máquina.