Como configuro um servidor de email?

59

Meu VPS está executando o Ubuntu e gostaria de receber e-mails em meu domínio.

Como configuro facilmente um servidor de e-mail para fazer isso?

    
por Stefano Palazzo 29.07.2011 / 08:13

4 respostas

48

É assim que eu configurei o e-mail em nossas máquinas de produção. Estes são os critérios que precisávamos:

  • Contas de e-mail
  • Aliases de email (remetentes)
  • IMAP, POP3 e SMTP

"Fácil" (tl; dr)

Primeiro, quero abordar o que parece ser a solução mais fácil .

sudo tasksel install mail-server

Vários problemas com isso ocorreram quando tentamos isso: Primeiro, instala o Dovecot, o que é bom para a maioria, mas consideramos o Courier como o melhor dos dois para as necessidades do nosso . Segundo, ele utiliza o Postfix, o que é ótimo, mas também precisamos do Exim, pois é um servidor MTA / SMTP mais poderoso. Terceiro, ele instala o MySQL - na configuração que eu utilizo, preferimos arquivos planos para configuração, já que é um ponto a menos de quebra. Pense no que aconteceria se o MySQL falhasse por algum motivo desconhecido. Caso contrário, o resto dos pacotes é bastante simples e fácil de manter para um pequeno serviço de e-mail (pense em 1-2 domínios de e-mail no total).

Nossa configuração

Estrutura de Diretórios

Nós nos perdemos um pouco fora do caminho das configurações normais, mas isso facilita o gerenciamento.

Todos os nossos e-mails são armazenados em /var/mail/virtual/<domain>/<user>/mail Então, para exemplos futuros, usaremos email@example.com , fwd@example.com , foo@example.com para representar um endereço de e-mail, um encaminhador para example@gmail.com e um endereço ruim, respectivamente. No exemplo acima, seria /var/mail/virtual/example.com/email/mail .

Eu também mantenho uma lista de todos os domínios no servidor em /etc/valiases , mas mais sobre isso depois.

Postfix

Esta é mais ou menos a parte fácil da configuração. Basta instalar o pacote postfix .

Exim

Instale o Exim com apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy Uma vez instalado, você precisará editar a configuração padrão do exim para substituir ou adicionar os seguintes valores:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(Estas linhas aparecerão em partes diferentes do arquivo, substitua cada uma delas adequadamente)

Depois de concluir, reconstrua a configuração do exim com update-exim4.conf . Isso conclui as alterações necessárias para o Exim

Courier

Instale o Courier com courier-base . Isso deve instalar courier-authdaemon , courier-authlib* , courier-imap* , courier-pop* , courieruserinfo , courier-ssl

Honestamente, não há muita configuração fora do padrão. Você só precisa criar um banco de dados do usuário.

Contas

Exim e Courier verificam alguns lugares para ver se um login ou um e-mail recebido são válidos. O Exim verifica se o domínio está listado como um nome de host local ou se o domínio está em /var/mail/virtual ou se o domínio está em /etc/valiases .

Criando contas de e-mail

Eu finalmente criei várias ferramentas para simplificar esse processo, mas adicionar um novo usuário segue o seguinte:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

Em seguida, adicione o endereço ao courier userdb - para que eles possam efetuar login

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Certifique-se de substituir os valores quando apropriado. Também - uid e gid precisam para serem os IDs numéricos de usuário / grupo para o usuário de e-mail.

userdbpw -md5 | userdb email@example.com set systempw

Isso solicitará uma senha, insira a que você deseja usar para a conta.

makeuserdb

Por fim, gere os arquivos hash / shadow do userdb. Reinicie o Courier e teste se suas alterações funcionam:

authtest email@example.com

Deve produzir algo semelhante a

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

Se você ver "Falha na Autenticação: Operação não permitida", edite / etc / courier / authdaemonrc e adicione authuserdb à linha authmodulelist.

Após todos os testes terem sido confirmados, reinicie os vários serviços envolvidos ( courier-authdaemon , exim4 ), abra as portas 143, 25, 586, 495, 110 e configure as contas no seu cliente de email favorito.

Criando aliases de e-mail

Para cada domínio, você deve criar um arquivo em /etc/valiases (criar, se não existir) com pelo menos a seguinte linha:

*: :fail: No user at this address.

O que isto diz: Se o e-mail recebido não corresponder a qualquer conta de e-mail que eu tenha arquivado, o e-mail deve estar com falha e ser devolvido com uma mensagem: "Nenhum usuário neste endereço". Assim, todos os e-mails enviados para dizer: foo@example.com seriam devolvidos como uma falha.

No entanto, temos alguns endereços de e-mail que queremos manter em outro lugar - por exemplo, example@gmail.com - para isso, precisamos criar /etc/valiases/example.com e o conteúdo do arquivo deve ser o seguinte:

fwd: example@gmail.com
*: :fail: No user at this address.

Dessa forma, mesmo que fwd@example.com não corresponda a nenhuma conta de e-mail no servidor, ela corresponderá ao arquivo /etc/valiases e o e-mail será encaminhado para example@gmail.com - no entanto, foo @ example .com ainda falhará com a mensagem "Nenhum usuário neste endereço".

    
por Marco Ceppi 29.07.2011 / 20:41
14

A maneira mais fácil é executar sudo tasksel install mail-server . Isso lhe dará um servidor de e-mail com padrões sãos. Tudo o que você precisa fazer é responder a algumas perguntas. Obviamente, você ainda pode fazer configurações manuais depois, se necessário, mas na maioria dos casos não será. Basta seguir as instruções na tela e você deve estar bem.

No entanto, é absolutamente aconselhável ler a administração dos serviços de e-mail.

Referências oficiais:

  • link
por Jo-Erlend Schinstad 29.07.2011 / 18:35
5

Não tenho uma "grande resposta", mas você pode achar esses links úteis link Mail e < href="https://help.ubuntu.com/community/Postfix"> link

    
por fragos 29.07.2011 / 09:22
4

Fazendo isso sozinho, você realmente precisa do postfix, e no meu caso eu queria um servidor imap também para que eu pudesse usar um bom cliente gui (sem mencionar nomes) em outra máquina. Eu usei estes documentos:

Postfix

Dovecot (imap e pop3)

Na verdade, é bem simples, comecei a funcionar em poucos minutos e recebi e-mails. Isso também é útil para verificar se tudo está configurado ok pingabilidade .

Ah, e você terá que configurar suas entradas de DNS corretamente como abaixo (com base nas configurações que funcionaram para mim):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

e

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Anote o ponto final no final dos servidores de e-mail e insira seu endereço IP e nome de domínio onde for apropriado.

    
por NimChimpsky 29.07.2011 / 09:27

Tags