É necessário configurar um servidor de e-mail antes de poder usar o mail
comando linux?
Responder1
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 atendem ao email como serviço. MDA (Mail Delivery Agents) é 1, 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” email.
Quando você executa mail
e especifica um endereço para enviar mensagens, [email protected]
. O cliente de e-mail invocará o MTA ( /usr/bin/sendmail
), que então consultará o DNS desse host/domínio (exemplo.com) e descobrirá qual valor está designado para seu registro MX. MX significa Mail Exchanger.
Exemplo
Você pode usar o dig
comando 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 a Eggs.gnu.org na porta 25 para entregar este e-mail.
Servidor dns?
@puk fez a seguinte pergunta de acompanhamento:
Este DNS está na minha máquina local?
Ao que respondi:
@puk - pode ser da mesma maneira que o servidor de e-mail, mas normalmente não é. Olhe em seu /etc/resolv.conf
arquivo e também ao executar o dig
comando você notará a SERVER: ...
linha na parte inferior. Esse é o servidor DNS que atende sua solicitação.
Exemplo
Meu /etc/resolv.conf
arquivo contém o seguinte:
nameserver 192.168.1.8
E consultas como esta, usando dig
:
$ dig gnu.org mx
Resultado nisso 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: como isso está configurado? A resposta é o /etc/nsswitch.conf
arquivo. Especificamente esta linha:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Ou seja, use os arquivos primeiro ( /etc/hosts
), seguido por mdns4_minimal
. Esse é um DNS multicast. É basicamente um cache de pesquisas anteriores. Por último utiliza dns
qual é o endereço IP do nameserver
designado no /etc/resolv.conf
arquivo.
Responder2
Realmente depende de qual versão mail
você está usando.
Todas as versões precisam de um MTA para realmente entregar o e-mail, mas algumas versões são capazes de usar SMTP para se comunicar com um MTA remoto (o "smarthost", por exemplo, o servidor de e-mail do seu ISP) e algumas só podem canalizar a mensagem para /usr/sbin/sendmail
enviar o e-mail via um MTA local.
Neste último caso, o MTA local poderia ser um MTA completo comoenviar correiooueximoupós-fixado. Ou poderia ser um simples MTA somente para envio, comomailer nuloousmtp. Ou um mini-MTA um pouco mais sofisticado comomsmtpque também oferece suporte ao enfileiramento de mensagens para entrega posterior.
No mundo do Software Livre e Código Aberto, existem duas variantes principais do mailx
pacote (que fornece o mail
comando): bsd-mailx
, e heirloom-mailx
. O mail
comando também está disponível no GNU mailutils
.
bsd-mailxnão fala SMTP e só pode enviar e-mails canalizando-os para/usr/sbin/sendmail
herança-mailxpode falar SMTP para um smarthost, bem como o método tradicional 'pipe-to-sendmail'. POR FALAR NISSO,Lesmaé provavelmente o melhor derivado do heirloom-mailx - ainda está sendo desenvolvido e atualizado ativamente.
Utilitários de correio GNUcontém diversas ferramentas relacionadas a e-mail para usuários finais e administradores de sistemas, incluindo uma versão do mail
e muito mais.
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 mail
instalada, talvez não seja necessário instalá-lo e configurá-lo em seu próprio sistema.
IMO, é melhor você ter pelo menos um MTA mínimo msmtp
(ou um completo como postfix
ou exim
) do que depender apenas de um smarthost heirloom-mailx
porque você ainda precisa enfileirar e-mails para entrega posterior quando sua conexão com a Internet estiver inoperante ou seu smarthost estiver inacessível. Com uma fila local mail
e crond
outros programas podem simplesmente enviar e esquecer qualquer e-mail. Sem uma fila local, eles terão que lidar de alguma forma com a condição de erro se o smarthost estiver indisponível.