
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://img.shields.io/badge/Exim-Relay-blue.svg https://img.shields.io/docker/pulls/aprendendolinux/exim-relay.svg](https://hub.docker.com/r/aprendendolinux/exim-relay) https://img.shields.io/docker/image-size/aprendendolinux/exim-relay/latest.svg](https://hub.docker.com/r/aprendendolinux/exim-relay)
A imagem Docker aprendendolinux/exim-relay oferece uma solução leve, segura e altamente configurável para relay de e-mails baseado no Exim. Projetada para aplicações ou serviços internos, ela permite o envio de e-mails através de servidores SMTP externos, como Gmail, SendGrid ou Amazon SES. Construída sobre o Alpine Linux, a imagem mantém um tamanho reduzido (~20-30 MB), tornando-a ideal para ambientes de desenvolvimento, teste ou produção com recursos limitados.
Com suporte a autenticação SASL, configuração via variáveis de ambiente, atrasos configuráveis no envio de e-mails, desabilitação de IPv6, logs persistentes mapeados para o host, decodificação de assuntos MIME e configuração de fuso horário, esta imagem é perfeita para quem busca um relay SMTP eficiente sem a complexidade de um servidor de e-mail completo.
Imagem no Docker Hub: aprendendolinux/exim-relay:latest
Repositório GitHub: https://github.com/clubenaval/docker-postfix-relay
Autor: Henrique Fagundes, Analista de Infraestrutura GNU/Linux, Clube Naval
false.TZ (ex.: America/Sao_Paulo) para timestamps precisos nos logs.mynetworks, com suporte a IPv4 e IPv6.smtp.gmail.com:587 com App Password para Gmail)./var/log/exim para persistência de logs no host.tzdata incluído para suporte a configurações de timezone.Para começar, puxe a imagem pré-construída:
bashdocker pull aprendendolinux/exim-relay:latest
Execute o container com configurações comuns, substituindo os valores pelos seus:
bashdocker run -d \ --name exim-relay \ -p 25:25 \ -e SMTP_SERVER=smtp.gmail.com \ -e SMTP_PORT=587 \ -e SMTP_USERNAME=seu_email@gmail.com \ -e SMTP_PASSWORD=seu_app_password \ -e SERVER_HOSTNAME=mail.seudominio.com \ -e EXIM_DESTINATION_RATE_DELAY=10s \ -e EXIM_INET_PROTOCOLS=ipv4 \ -e EXIM_MAILLOG_FILE=/var/log/exim/mail.log \ -e DEBUG=yes \ -e LOG_SUBJECT=yes \ -e DECODE_SUBJECT=yes \ -e TZ=America/Sao_Paulo \ -v /srv/exim/logs:/var/log/exim \ aprendendolinux/exim-relay:latest
tail -f /srv/exim/logs/mail.log no host.-e TZ=America/Sao_Paulo garante que os timestamps nos logs reflitam o horário de São Paulo.Crie um arquivo docker-compose.yml para gerenciar o serviço (evite incluir credenciais sensíveis em repositórios públicos):
yamlservices: exim-relay: image: aprendendolinux/exim-relay:latest container_name: exim-relay restart: unless-stopped ports: - "25:25" environment: # Servidor SMTP externo (ex.: smtp.gmail.com) - SMTP_SERVER=smtp.gmail.com # Porta do servidor SMTP (587 para TLS, 465 para SSL) - SMTP_PORT=587 # Usuário para autenticação SASL (ex.: seu e-mail) - SMTP_USERNAME=seu_email@gmail.com # Senha ou App Password para autenticação - SMTP_PASSWORD=seu_app_password # Hostname do servidor Exim (ex.: mail.seudominio.com) - SERVER_HOSTNAME=mail.seudominio.com # Atraso entre envios para o mesmo destino (ex.: 10s); use 'false' para desativar - EXIM_DESTINATION_RATE_DELAY=false # Protocolos de rede (ex.: ipv4 para desabilitar IPv6) - EXIM_INET_PROTOCOLS=ipv4 # Caminho do arquivo de log no container - EXIM_MAILLOG_FILE=/var/log/exim/mail.log # Ativa logs de depuração (yes/no) - DEBUG=no # Registra o campo Subject nos logs (yes/no) - LOG_SUBJECT=no # Decodifica assuntos MIME nos logs (yes/no) - DECODE_SUBJECT=no # Fuso horário do container (ex.: America/Sao_Paulo) - TZ=America/Sao_Paulo volumes: - /srv/exim/logs:/var/log/exim networks: default: driver: bridge
Inicie o serviço:
bashdocker-compose up -d
Para parar:
bashdocker-compose down
Nota: Ajuste o caminho /srv/exim/logs para um diretório válido no seu host. Para maior segurança, use Docker Secrets para credenciais em ambientes de produção.
As configurações são feitas via variáveis de ambiente no docker run ou docker-compose.yml. Veja a lista completa:
smtp.gmail.com).mail.seudominio.com).SERVER_HOSTNAME se não especificado.false para desativar.ipv4 para desabilitar IPv6)./var/log/exim/mail.log).yes.192.168.0.0/16).Date) com yes.RelayTag: mytag).Subject nos logs com yes.LOG_SUBJECT=yes.From: (ex.: sender@seudominio.com).10485760 para 10MB).yes.America/Sao_Paulo).Iniciar o Container:
bashdocker-compose up -d
Enviar um E-mail de Teste: Use mailx de outro container ou host na mesma rede:
bashecho "Corpo do e-mail de teste" | mail -s "Assunto de Teste" -r de@exemplo.com para@exemplo.com
Substitua de@exemplo.com e para@exemplo.com por endereços válidos. Certifique-se de que a porta 25 está acessível.
Verificar os Logs: No host, execute:
bashtail -f /srv/exim/logs/mail.log
Procure por status=sent para confirmar o envio. Se DECODE_SUBJECT=yes, os assuntos codificados aparecerão legíveis. Verifique se os timestamps refletem o fuso horário configurado (ex.: America/Sao_Paulo).
Confirmar o Fuso Horário: Verifique no container:
bashdocker exec -it exim-relay date
O resultado deve mostrar a data/hora no fuso horário definido (ex.: Dom Out 12 18:30:00 -03 2025 para America/Sao_Paulo).
Localização dos Logs: Armazenados em /var/log/exim/mail.log no container e mapeados para o host. Se EXIM_MAILLOG_FILE não for definido, os logs vão para stdout (visível com docker logs exim-relay).
Modo Debug: Ative DEBUG=yes para logs detalhados, mostrando configurações aplicadas.
Verificar Configurações do Exim: Execute:
bashdocker exec -it exim-relay exim -bP
Verifique configurações como primary_hostname, relay_to_domains e outras.
Confirmar Fuso Horário: Verifique com:
bashdocker exec -it exim-relay cat /etc/timezone
Ou confira os timestamps nos logs.
Decodificação de Assuntos: Com DECODE_SUBJECT=yes e LOG_SUBJECT=yes, os assuntos codificados (ex.: MIME Quoted-Printable) são decodificados para facilitar a leitura.
SMTP_USERNAME, SMTP_PASSWORD e SMTP_PORT. Para Gmail, use um App Password.EXIM_INET_PROTOCOLS=ipv4 se a rede não suportar IPv6./var/log/exim e permissões no diretório do host.docker exec -it exim-relay exim -bP. Se EXIM_DESTINATION_RATE_DELAY=false, o atraso não será configurado.LOG_SUBJECT=yes e DECODE_SUBJECT=yes. Verifique erros no docker logs.TZ está definido (ex.: America/Sao_Paulo) e que tzdata está instalado. Verifique com docker exec -it exim-relay date.docker logs exim-relay para erros de configuração ou variáveis obrigatórias ausentes (SMTP_SERVER, SERVER_HOSTNAME).Reporte problemas em https://github.com/clubenaval/docker-postfix-relay/issues.
Monitoramento de Logs: Use ferramentas como tail, less ou sistemas de monitoramento (ex.: ELK, Prometheus) para analisar /srv/exim/logs/mail.log. Procure por status=sent (sucesso) ou status=bounced (falhas).
Rotação de Logs: Configure rotação de logs no host (ex.: logrotate) para evitar consumo excessivo de disco.
Saúde do Container: Verifique o status com:
bashdocker ps -f name=exim-relay
Atualizações: Monitore o Docker Hub para novas versões da imagem. Para atualizar:
bashdocker pull aprendendolinux/exim-relay:latest docker-compose down docker-compose up -d
Backup dos Logs: Faça backup regular do diretório /srv/exim/logs para preservar históricos de envio.
Se você encontrar problemas ou tiver sugestões, abra um issue no https://github.com/clubenaval/docker-postfix-relay/issues. Para dúvidas gerais, confira a documentação completa no repositório ou entre em contato com a comunidade no Docker Hub.
Se esta imagem foi útil, ***e dar uma ⭐ no https://github.com/clubenaval/docker-postfix-relay e compartilhar com outros! Sua contribuição ajuda a manter o projeto ativo e a melhorar a experiência para todos os usuários.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务