Onde os e-mails do sendmail são armazenados?

7
Estou tentando construir um script de autoresponder para o sendmail (não, eu não quero usar um pré-criado ainda), mas não consigo encontrar a localização de e-mails recebidos no meu servidor. Eu tenho que especificar que minha configuração não é padrão.

Eu olhei em /root , não há pasta de e-mail lá. (Eu não tenho nenhum outro usuário além do root). Eu olhei em /var/mail/root , existem apenas alguns logs que são enviados para mim por e-mail, mas não e-mails externos que eu recebo dos usuários.

Eu verifiquei /var/log/maillog , mas não há erros.

Estou sem ideias para onde procurar. Alguém pode ajudar-me?

    
por Eduard Luca 05.10.2011 / 10:04

3 respostas

5

O sendmail (um agente de transporte de e-mail - MTA) armazena e-mails no local onde está configurado para armazenar mensagens. Mas um MTA somente armazena e-mail que está atualmente enfileirando - a entrega de e-mail para o local onde ele é acessível por um usuário é tratada pelo agente de entrega de e-mail (MDA). Embora o sendmail (e outros MTAs) possam atuar como um MDA, é muito incomum que esse seja o caso.

Independentemente disso, tentar acessar os arquivos de mensagens não é o caminho certo para implementar um autoresponder.

Isso deve ser feito como um filtro no MTA (ou seja, um milter) ou no MDA. A API milter é especificamente projetada para isso - e há já podem ser ferramentas disponíveis que atendam às suas necessidades sem modificação.

Se o seu MDA atual é procmail, então você está com sorte - isso fornece uma enorme flexibilidade (na verdade é uma linguagem de programação própria) para lidar com mensagens de correio. Novamente, há muitos códigos na Internet que podem atender às suas necessidades (AFAIK não existe um repositório central para Receitas procmail - mas tente o google).

Até mesmo o mecanismo básico .forward pode ser usado para implementar isso - mas eu aconselharia contra isso - indo pela rota do procmail você pode separar a mensagem para que a entrega não seja dependente / implementada pelo seu script.

    
por 05.10.2011 / 12:48
4

Se você tem outros que não os diretórios padrão configurados, você deve olhar seu /etc/mail/sendmail.cf para ver a que os caminhos estão definidos.

Isso não apenas varia entre a distribuição do sistema operacional, mas até mesmo os diretórios padrão entre as diferentes versões do sendmail são alterados. Em suma, apenas para nos dizer os padrões, precisamos saber a versão do sistema operacional ea versão do sendmail. Os padrões são / var / spool / mail / $ USERNAME para a lista de mensagens, então, se um usuário ler o email com outro aplicativo, ele geralmente é movido para $ HOME / mbox.

Aqui está uma lista de diretórios de e-mail comuns:

  • / var / mail / $ USERNAME
  • / var / spool / mail / $ USERNAME
  • $ HOME / mbox
  • $ HOME / mail
  • $ HOME / Maildir
por 05.10.2011 / 11:31
3

Depende de como está configurado, mas o local habitual é /var/spool/mail ou algumas distros /var/mail . Se não estiver em nenhum desses lugares, avise-nos e começaremos a escavar !

    
por 05.10.2011 / 10:37