É necessário configurar um servidor de correio antes de poder usar o mail
comando linux ?
É necessário configurar um servidor de correio antes de poder usar o mail
comando linux ?
Respostas:
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 mail
e especifica um endereço para o qual enviar email sam@example.com
,. 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.
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 ao eggs.gnu.org na porta 25 para entregar este email.
@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.conf
arquivo e, ao executar o dig
comando, você perceberá a SERVER: ...
linha na parte inferior. Esse é o servidor DNS que atende sua solicitação.
Meu /etc/resolv.conf
arquivo 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.conf
arquivo. 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 dns
qual é o endereço IP do nameserver
designado no /etc/resolv.conf
arquivo.
Realmente depende de qual versão mail
você 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/sendmail
enviar 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 mailx
pacote (que fornece o mail
comando): bsd-mailx
e 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 msmtp
que confiar apenas em um servidor inteligente, heirloom-mailx
porque ainda precisa enfileirar mensagens para entrega posterior quando a conexão à Internet estiver inoperante ou inacessível. Com uma fila local, mail
e crond
outros 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.