O comando mail requer um servidor de email?

16

É necessário configurar um servidor de correio antes de poder usar o mailcomando linux ?

puk
fonte
@slm não é realmente o mesmo que essa pergunta dicas que é preciso um servidor SMTP para executar mail, mas eu estou perguntando se é absolutamente necessário
puk
1
Sim, é uma possível duplicata, eu respondi que o Q leva um pouco muito específico. Ainda parece um idiota, mas eu respondi mesmo assim 8-)
slm

Respostas:

14

Não, você não precisa de um servidor de correio para enviar e-mails. Eu estou mais familiarizado com o Sendmail e existem três classificações de funcionalidade que atendem ao email como serviço. MDA (Mail Delivery Agents) é 1 e MTA (Mail Transfer Agents) é 2 e 3 é MUA (Mail User Agents).

A terminologia é confusa, mas você não precisa que um MTA esteja em execução o tempo todo. O MTA será chamado sempre que o MUA ( mail) quiser "enviar" emails.

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

Exemplo

Você pode usar o digcomando para ver isso:

$ 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

Portanto, o cliente tentará se conectar ao eggs.gnu.org na porta 25 para entregar este email.

Servidor dns?

@puk fez a seguinte pergunta de acompanhamento:

Esse DNS está na minha máquina local?

Ao que eu respondi:

@puk - pode ser da mesma maneira que o servidor de correio, mas normalmente não é. Procure no seu /etc/resolv.confarquivo e, ao executar o digcomando, você perceberá a SERVER: ...linha na parte inferior. Esse é o servidor DNS que atende sua solicitação.

Exemplo

Meu /etc/resolv.confarquivo contém o seguinte:

nameserver 192.168.1.8

E consultas como esta, usando dig:

$ dig gnu.org mx

Resulte isso 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 /etc/nsswitch.confarquivo. Especificamente esta linha:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

Ou seja, use os arquivos primeiro ( /etc/hosts), seguidos por mdns4_minimal. Esse é um DNS multicast. É basicamente um cache de pesquisas anteriores. Por fim, utiliza dnsqual é o endereço IP do nameserverdesignado no /etc/resolv.confarquivo.

slm
fonte
Esse DNS está na minha máquina local?
puk
@puk - veja as atualizações.
slm
@puk - Adicionei mais ....
slm
7

Realmente depende de qual versão mailvocê está usando.

Todas as versões precisam de um MTA para realmente entregar o email, mas algumas versões são capazes de usar o SMTP para conversar com um MTA remoto (o "smarthost", por exemplo, o servidor de email do seu provedor de serviços de Internet) e alguns podem apenas /usr/sbin/sendmailenviar a mensagem para enviar o email via um MTA local.

Neste último caso, o MTA local pode ser um MTA de pleno direito como sendmail ou exim ou postfix . Ou pode ser um simples MTA somente de envio, como nullmailer ou ssmtp . Ou um mini-MTA um pouco mais sofisticado, como o msmtp, que também suporta filas de emails para entrega posterior.

No mundo do software livre e código aberto, existem duas variantes principais do mailxpacote (que fornece o mailcomando): bsd-mailxe heirloom-mailx.

O bsd-mailx não fala SMTP e só pode enviar mensagens encaminhando-as para/usr/sbin/sendmail

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

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

Na IMO, é melhor você ter um MTA mínimo do msmtpque confiar apenas em um servidor inteligente, heirloom-mailxporque ainda precisa enfileirar mensagens para entrega posterior quando a conexão à Internet estiver inoperante ou inacessível. Com uma fila local, maile crondoutros programas podem simplesmente enviar e esquecer qualquer email. Sem uma fila local, eles precisam lidar de alguma forma com a condição de erro se o smarthost estiver indisponível.

cas
fonte