trashmail
automático - receba e -mails via Web UI
, JSON API
, RSS feed
e Webhook
RSS feed
para cada endereço de e -mailJSON API
por integrá -lo em seus próprios projetos. Pode ser usado para automatizar e -mails 2FAWebhook
para integrá -lo em seus próprios projetosPlaintext
, STARTTLS
e TLS on connect
Endpoint | Explicação | Exemplo de saída |
---|---|---|
/ RSS/ [email-address] | Renderiza o XML RSS para clientes RSS para renderizar e -mails | |
/API/RAW/ [email-address]/[id] | Retorna o email bruto do endereço. Aviso: a saída pode ser tão grande quanto o próprio email, por isso pode ser de até 20 MB para e -mails com grandes anexos | |
/API/ANCIAMENTO [email-address]/[attachment-id] | Retorna o anexo com o tipo MIME correto como cabeçalho | |
/API/DELETE/ [email-address]/[id] | Exclui uma mensagem de e -mail específica e seus anexos | |
/API/DeleteAccount/ [email-address] | Exclui todas as mensagens e anexos desta conta de email |
Endpoint | Explicação | Exemplo de saída |
---|---|---|
/ JSON/ [email-address] | Retorna uma variedade de e -mails recebidos com links para os anexos e o corpo do e -mail baseado em texto analisado. Se o email ADMIN for inserido, retornará todos os e -mails de todas as contas | |
/json/ [email-address]/[id] | Para ver todos os dados de um email recebido, pegue o ID da chamada anterior e consulte isso para obter o corpo Raw e HTML do email. Pode ser enorme, pois o corpo pode conter todos os acessórios na base64 | |
/json/listAccounts | Se SHOW_ACCOUNT_LIST estiver definido como true no config.ini, este endpoint retornará uma matriz de todos os endereços de email que receberam pelo menos um email |
Basta editar o config.ini
você pode usar as seguintes configurações
URL
-> O URL sob o qual a GUI será hospedada. Sem barra de reajuste! Exemplo: https://trashmail.mydomain.euDOMAINS
-> Lista de domínios separados por vírgula Este servidor de email receberá e -mails. É apenas para que a interface da web possa gerar endereços aleatóriosMAILPORT
-> A porta O servidor SMTP movido a Python será ouvido. Default: 25
ADMIN
-> Um endereço de e -mail (não precisa existir, apenas precisa ser válido) que listará todos os emails de todos os endereços que o servidor recebeu. Tipo de um problemaDATEFORMAT
-> Como os registros de data e hora devem ser mostrados na interface da web (Sintaxe Moment.js)PASSWORD
-> Se configurado, o site e a API não podem ser usados sem fornecê -la via formulário, poste/obtenha password
variável ou o cabeçalho HTTP PWD
(por exemplo: curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
-> Vírgula separada de endereços IPv4 ou IPv6 Cidr que podem usar a interface da web ou APIATTACHMENTS_MAX_SIZE
-> Tamanho máximo para cada anexo individual de um email em bytesMAILPORT_TLS
-> Se definido como algo maior que 0, esta porta será usada para TLSC (TLS no Connect). O que significa que a autenticação simples não será possível. Geralmente definido como 465
. Precisa de TLS_CERTIFICATE
e TLS_PRIVATE_KEY
para funcionarTLS_CERTIFICATE
-> caminho para o certificado (cadeia). Pode ser relativo ao diretório /python ou absolutoTLS_PRIVATE_KEY
-> caminho para a chave privada do certificado. Pode ser relativo ao diretório /python ou absolutoWEBHOOK_URL
-> Se definido, enviará uma solicitação de postagem para este URL com os dados JSON do email como corpo. Pode ser usado para integrar o Opentrashmail em seus próprios projetosADMIN_ENABLED
-> Ativa o menu Admin. Padrão false
ADMIN_PASSWORD
-> Se definido, precisa dessa senha para acessar o menu de administrador No Docker, você pode usar as seguintes variáveis de ambiente:
Env var | O que faz | Valores de exemplo |
---|---|---|
Url | O URL da interface da web. Usado pela API e RSS Feed | http: // localhost: 8080 |
Dispard_unknown | Diz ao correio para Wether ou não excluir e -mails endereçados a domínios que não estão configurados | Verdadeiro, falso |
Domínios | Os domínios da lista de permissões que o servidor ouvirá. Se Dispard_unknown estiver definido como false, isso será usado apenas para gerar e -mails aleatórios no WebInterface | |
Show_account_list | Se definido como true , todas as contas que receberam e -mails anteriormente podem ser listadas via API ou WebInterface | Verdadeiro, falso |
Admin | Se definido como um endereço de email válido e este endereço for inserido na API ou WebInterface, mostrará todos os emails de todas as contas. Tipo de coisa-toda | [email protected] |
DateFormat | Formatará a data recebida na interface da web com base na sintaxe do momento.js | "Mmmm, sim, h: mm: ss a" |
SKIP_FILEPERMISSIONS | Se definido como true , não corrigirá as permissões de arquivo para a pasta de dados do código no contêiner. Útil para o Dev Local. Padrão false | Verdadeiro, falso |
SENHA | Se configurado, o site e a API não podem ser usados sem fornecê -lo via formulário, poste/obtenha password variável ou cabeçalho HTTP PWD | yousrstrongpassword |
Permitido_ips | Lista separada por vírgula de endereços IPv4 ou IPv6 CIDR que podem usar a interface da web ou API | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
APCTIGS_MAX_SIZE | Tamanho máximo para cada anexo individual de um email em bytes | 2000000 = 2MB |
Mailport_tls | Se definido como algo maior que 0, esta porta será usada para TLSC (TLS no Connect). O que significa que a autenticação simples não será possível. Geralmente definido como 465 . Precisa de TLS_CERTIFICATE e TLS_PRIVATE_KEY para funcionar | 465 |
Tls_certificate | Caminho para o certificado (cadeia). Pode ser relativo ao diretório /python ou absoluto | /certs/cert.pem ou cert.pem se estiver dentro do diretório Python |
Tls_private_key | Caminho para a chave privada do certificado. Pode ser relativo ao diretório /python ou absoluto | /certs/privkey.pem ou key.pem se estiver dentro do diretório Python |
Webhook_url | Se definido, enviará uma solicitação de postagem para este URL com os dados JSON do email como órgão. Pode ser usado para integrar o Opentrashmail em seus próprios projetos | https://example.com/webhook |
Admin_enabled | Ativa o menu de administrador. Padrão false | false / true |
Admin_password | Se definido, precisa dessa senha para acessar o menu de administrador | 123456 |
Como v1.3.0 TLS e STARTTLS são suportados pelo OpenTrashmail.
Esteja ciente de que existem duas maneiras de usar o TLS com email
O STARTTLS não requer uma porta específica, pois começa como texto simples e atualiza para o TLS se o servidor anunciar o comando "starttls" (que o OpenTrashmail faz automaticamente se o certificado e as configurações de chave estiverem configuradas). Como é executado na MAILPORT
padrão, você não precisa abrir outras portas para que funcione.
O TLS On Connect está envolvendo o TLS em torno das portas expostas, para que não seja possível conversar com ele no texto simples e, portanto, precisa de uma porta diferente para funcionar. Normalmente, a porta 465 é usada para isso.
Para que o TLS funcione, você precisa primeiro de um certificado que corresponda ao nome do host do servidor SMTP. Isso pode ser feito usando Lets'Encrypt e até trabalha com certificados curinga.
Para ambientes de teste, você pode criar um certificado executando o seguinte comando de dentro da pasta Python:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
Em seguida, você precisa definir as configurações para MAILPORT_TLS
(não é necessário se você deseja suportar apenas o StartTLS), TLS_CERTIFICATE
e TLS_PRIVATE_KEY
.
O arquivo /docs/dev.md contém algumas dicas sobre como depurar e testar as conexões TLS e TLSC. Ele usa os swaks
da ferramenta que devem ser avisados em todos os gerenciadores de pacotes.
No seu painel DNS, crie um registro MX para o seu domínio apontando para o IP do servidor que hospeda o OpenTrashmail.
O exemplo a seguir permitirá que você envie e -mails para exemplo.com
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
Este exemplo avançado permitirá que você use um domínio curinga:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
Isso em combinação com a opção de configuração "Domínios" (por exemplo, parâmetro do docker -e DOMAINS="*.example.com"
) permitirá que você use qualquer endereço com qualquer subdomínio de exemplo.com (por exemplo, [email protected], [email protected], etc ..)
Início simples sem persistência
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
Salvar o diretório de dados na 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
Exemplo completo com a corrida como daemon, persistência, um domínio para geração automática de e-mails, aceitando apenas e-mails para domínios configurados, limpeza para e-mails com mais de 90 dias e reinício 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
O coração do Open Trashmail é um servidor SMTP movido a Python que escuta em e-mails recebidos e os armazena como arquivos JSON. O servidor não precisa saber o domínio de email certo, ele apenas pega tudo o que recebe. Você só precisa expor a porta 25 à Web e definir um registro MX do seu domínio apontando para o endereço IP da sua máquina.