Por que o OS X pode enviar e-mails sem primeiro configurar o SMTP?


9

Quando tento o comando no terminal, um email é enviado. Verifiquei se não há SMTP local em execução. Qual é o mecanismo usado pela Apple nos bastidores?

echo "Hello" | mail -s "Test" foo@bar.com

Respostas:


4

mail no OS X, na verdade, parece gerar o Postfix por tempo suficiente para lidar com o correio e destruí-lo pouco tempo depois.

Para ver isso em ação, tente telnet localhost 25antes do comando mail, imediatamente depois, aguarde 5 minutos e tente novamente.

Não tenho certeza se essa é realmente uma resposta adequada à pergunta, porque não explica como o Postfix é gerado e destruído, mas espero que ajude a responder à pergunta.


7

Daemons ou servidores SMTP existem para receber e-mail, não para enviá-lo. No seu exemplo, mailé puramente um cliente de e-mail e se conecta a qualquer servidor definido pelo registro DNS DNS apropriado de bar.come não precisa de um servidor local em execução para fazê-lo.

No entanto, dependendo da sua configuração de correio, você pode precisar fazer login em um servidor de correio de saída para se autenticar, ou se nada mais for apenas para fornecer o remetente e o endereço de retorno, etc. Agora, você pode fazer tudo isso na linha de comando, passando o apropriado parâmetros no terminal, mas desde que você tenha configurado seu aplicativo Mail, essa configuração já está armazenada e, simplesmente iniciando temporariamente o subsistema de email, os comandos do terminal podem pegar essas informações e agora têm um ou mais servidores smtp de correio que podem escolha enviar mensagens de saída. Em seguida, finalizará os processos quando concluídos.

Você pode testar tudo isso na linha de comando e enviar o email sem precisar usar um cliente de email. Como não estou em um Mac, esses comandos podem precisar de edição por alguém que esteja, mas você pode fazer isso:

nslookup
set type=mx
bar.com
exit

telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)

Leia isto para obter mais informações sobre envio por e-mail via telnet - é uma ótima ferramenta de depuração


Enquanto sua resposta recebeu o maior número de votos, mas está errado. O Mac gerará um Postfix para receber o e-mail e o desligamento automaticamente, como @zigg sugerido acima. Obrigado pelo seu esforço de qualquer maneira.
Yoga

Não é que esteja incorreto, pois todos os detalhes estão corretos, mas isso não necessariamente responde à sua pergunta na forma atual. Editado para fazer isso.
stuffe

@stuffe disse: "Daemons ou servidores SMTP estão lá para receber e-mails, não para enviá-los". Eu devo implorar para diferir. Como este é um comentário eu só vou citar este da Wikipedia: "As aplicações de correio do cliente em nível de usuário normalmente usam SMTP apenas para o envio de mensagens"
Seamus

1

Eu acho que mailsempre usa o sendmail local para enviar e-mails. No OSX, o sendmail é um postfix. E é definitivamente usado.

Você pode verificar os cabeçalhos de email Received: by [Your-Mac] (Postfix, from userid ....

No entanto, não é uma boa ideia usar mail(ou melhor postfix) assim. A melhor prática seria usar um host inteligente para o Postfix local para evitar restrições de firewall usadas com frequência.

Você pode encontrar uma solução em SMTP Smart Host Setup para Postfix no Snow Leopard que funciona para mim (também no Lion, Mountain Lion).


No cabeçalho, encontrei ... Recebido: por 10.194.242.101 com identificação SMTP xxx; ... X-Recebido: por 10.68.92.196 com identificação SMTP aaaa; ... mas meu IP interno é 192.168.xx
Yoga
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.