O comando de correio requer um servidor de correio?

15

Alguém precisa configurar um servidor de e-mail antes de poder usar o comando linux mail ?

    
por puk 03.10.2013 / 23:13

2 respostas

12

Não, você não precisa de um servidor de e-mail para enviar e-mails. Estou mais familiarizado com o Sendmail e existem 3 classificações de funcionalidade que preenchem o email como um serviço. MDA (Agentes de Entrega de Mensagens) é 1, e MTA (Agentes de Transferência de E-mails) é 2 e 3 é MUA (Agentes de Usuários de E-mail).

A terminologia é confusa, mas você não precisa de um MTA para estar em execução o tempo todo. O MTA será chamado toda vez que o MUA ( mail ) quiser "enviar" e-mail.

Quando você executa mail e especifica um endereço para o qual enviar e-mails, [email protected] . O cliente de email convocará o MTA ( /usr/bin/sendmail ), que consultará o DNS para esse host / domínio (example.com) e descobrirá qual valor é designado para seu registro MX. MX significa Mail Exchanger.

Exemplo

Você pode usar o comando dig para ver isto:

$ dig gnu.org mx

; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;gnu.org.           IN  MX

;; ANSWER SECTION:
gnu.org.        299 IN  MX  10 eggs.gnu.org.

;; ADDITIONAL SECTION:
eggs.gnu.org.       299 IN  A   208.118.235.92
eggs.gnu.org.       299 IN  AAAA    2001:4830:134:3::10

;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:27:22 2013
;; MSG SIZE  rcvd: 90

Assim, o cliente tentará se conectar ao eggs.gnu.org na porta 25 para entregar este e-mail.

servidor DNS?

@puk fez a seguinte pergunta:

Is this DNS on my local machine?

Ao qual eu respondi:

@puk - pode ser da mesma maneira que o servidor de correio pode ser, mas normalmente não é. Procure em seu arquivo /etc/resolv.conf e, quando executar o comando dig , você verá a linha SERVER: ... na parte inferior. Esse é o servidor DNS atendendo a sua solicitação.

Exemplo

Meu arquivo /etc/resolv.conf contém o seguinte:

nameserver 192.168.1.8

E consultas como esta, usando dig :

$ dig gnu.org mx

Resultado disso na parte inferior:

;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:46:13 2013
;; MSG SIZE  rcvd: 90

E para o leitor astuto, uma pergunta minha, como isso é configurado? A resposta é o arquivo /etc/nsswitch.conf . Especificamente esta linha:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

Isso diz: use os arquivos primeiro ( /etc/hosts ), seguidos por mdns4_minimal . Isso é um DNS multicast. É basicamente um cache de pesquisas anteriores. Por fim, ele usa dns , que é o endereço IP do nameserver designado no arquivo /etc/resolv.conf .

    
por 03.10.2013 / 23:28
7

Depende realmente de qual versão de mail você está usando.

Todas as versões precisam de um MTA para entregar o e-mail, mas algumas versões são capazes de usar o SMTP para falar com um MTA remoto (o "smarthost", por exemplo, o servidor de e-mail do seu ISP) e alguns podem transmitir a mensagem para /usr/sbin/sendmail para enviar o email por meio de um MTA local.

No último caso, o MTA local pode ser um MTA completo, como o sendmail ou exim ou postfix . Ou pode ser um simples MTA somente para envio como nullmailer ou ssmtp . Ou um mini-MTA um pouco mais sofisticado, como msmtp , que também suporta enfileirar e-mails para entrega posterior.

No software livre & Open Source world, existem duas variantes principais do pacote mailx (que fornece o comando mail ): bsd-mailx e heirloom-mailx .

O bsd-mailx não fala SMTP e só pode enviar e-mails enviando-os para /usr/sbin/sendmail

hierloom-mailx pode falar SMTP para um smarthost, bem como o método tradicional 'pipe-to-sendmail'.

Então, para responder à sua pergunta "Você precisa de um servidor de e-mail?". Sim, mais ou menos. Você precisa de um, mas, dependendo da versão do e-mail que você instalou, talvez não seja necessário instalá-lo e configurá-lo em seu próprio sistema.

IMO, você está melhor com um MTA mínimo como msmtp do que depender apenas de um smarthost com heirloom-mailx , porque ainda precisa enfileirar correspondência para entrega posterior quando sua conexão à Internet estiver inativa ou seu host inteligente estiver inacessível. Com uma fila local, mail e crond e outros programas podem apenas enviar e esquecer qualquer mensagem. Sem uma fila local, eles precisam lidar de alguma forma com a condição de erro se o smarthost não estiver disponível.

    
por 04.10.2013 / 01:10