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
.