Postfix ou exim: configuração de e-mail automatizada / programática e encaminhada

2

Pretendo substituir o uso atual de um provedor SMTP externo por uma instalação interna. Deve lidar com as seguintes situações:

  • Certos endereços devem ser encaminhados para endereços do Gmail; Gostaríamos de continuar a usar o Gmail como nossa principal interface de e-mail.

  • Outros endereços devem estar disponíveis como caixas de correio pop / imap.

  • Outros endereços serão tratados de maneira programática: eles iniciarão várias tarefas, serão registrados, etc. Esses endereços devem iniciar um processo para tratar os endereços de e-mail ou armazená-los em um formato facilmente processável.

  • Também deve ser facilmente configurável com chaves de domínio, spf e qualquer outra coisa necessária para permitir a entrega de e-mails.

Eu usei o sendmail no passado distante. Parece postfix e exim são as opções recomendadas nos dias de hoje. Minha principal questão é: qual é a melhor escolha e configuração para o encaminhamento dos endereços para o gmail e para o acesso programático? O procmail ainda é o caminho a percorrer ou há melhores opções nos dias de hoje?

Estamos usando servidores linux / ubuntu.

    
por Parand 11.07.2009 / 20:35

3 respostas

7

O postfix é sólido, bem suportado e fácil de configurar. Todas as coisas que você descreve são bastante rotineiras.

  • Encaminhamento: use mapas virtual_alias
  • Caixas de correio POP / IMAP: entrega local, use algo como Dovecot para seu servidor POP / IMAP
  • Material programático: se você quer dizer que você envia o e-mail para um script, isso é feito em / etc / aliases. Para "facilmente processável", você tem o formato mbox e Maildir, é tudo padrão.
  • Chaves de domínio / SPF: o SPF é feito no DNS. As chaves de domínio são fáceis o suficiente para configurar como um milter ou proxy SMTP.
por 11.07.2009 / 20:41
4

para o material programático, você deve estar ciente de qual UID os programas / scripts serão executados.

Para o postfix, por exemplo, os scripts executados em / etc / aliases (ou qualquer outro arquivo de aliases de propriedade da raiz) serão executados como o usuário 'nobody'.

o postfix tem a capacidade de ter vários arquivos de aliases e (aqui está a parte boa) que os programas executados a partir de um arquivo aliases serão executados como o usuário que possui esse arquivo (exceto root - como mencionado anteriormente, os arquivos aliases de root são correr como ninguém).

Se você precisar executar um script de e-mail como root, a maneira mais fácil (se você tiver o sudo instalado) é configurar o sudo para permitir que 'nobody' o rode como root sem uma senha e o execute a partir de um wrapper script que o executa com o sudo.

OBSERVAÇÃO: sempre que disparar scripts de e-mail, você deve lembrar que os dados (ou seja, o e-mail) são de uma fonte não confiável (a internet) .... por isso é extremamente inseguro usar os dados do corpo ou o cabeçalho como argumentos para comandos executados pelo script. Este é basicamente o mesmo problema que confiar em dados fornecidos pelo usuário em um script CGI - apenas não faça isso. por exemplo. considere o que um script mal escrito poderia fazer se os dados fornecidos pelo usuário fossem algo como "... innocuousdatahere ...; rm -rf /". você pode pensar que seria fácil checar coisas óbvias como ponto-e-vírgula e removê-las, mas há muitas coisas não óbvias que você precisa verificar também e você estaria se preparando para um fracasso, já que é improvável que você pense ou capture todos. É muito mais seguro eliminar totalmente o risco de segurança simplesmente não confiando nos dados fornecidos pelo usuário.

isso é importante, não importa qual UID o script será executado, mas é especialmente importante quando / se estiver sendo executado como root.

Finalmente, para responder a uma de suas perguntas diretas, o procmail ainda é uma ferramenta útil para o que você deseja fazer. como é maildrop e outros programas semelhantes. pense no procmail etc como ferramentas especializadas para analisar o corpo e os cabeçalhos para tomar decisões sobre o que fazer, assim você não precisa ter todo esse código de análise em seus scripts. escreva seu script para fazer seu trabalho e use o procmail para decidir quando o script deve ser executado. por exemplo, você poderia criar um novo usuário chamado, digamos, 'mailjobs', que possui seu próprio diretório home e o arquivo .procmailrc. em seguida, crie aliases que encaminham e-mails para esse usuário. mailjobs '.procmailrc então checaria o cabeçalho X-Original-To para decidir que script (s) executar (em).

    
por 12.07.2009 / 04:19
1

Tanto o exim quanto o postfix são mais do que capazes de fazer o que você precisa, o melhor conselho é escolher o mais fácil para você usar e / ou mais familiarizado.

Quanto a lidar com encaminhamentos para o gmail e para scripts, a melhor maneira de fazer isso é com um arquivo de aliases globais (geralmente mantido em / etc / aliases ou / etc / mail / aliases).

    
por 12.07.2009 / 01:09