Pourquoi OS X peut-il envoyer des e-mails sans avoir d'abord configuré SMTP?

9

Lorsque j'essaie la commande dans le terminal, un e-mail est envoyé. J'ai vérifié qu'aucun SMTP local n'est en cours d'exécution, alors quel est le mécanisme utilisé par Apple dans les coulisses?

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

Réponses:

4

mail sur OS X semble réellement générer Postfix assez longtemps pour traiter le courrier, puis le détruire un peu plus tard.

Pour voir cela en action, essayez telnet localhost 25avant la commande mail, puis immédiatement après, puis attendez 5 minutes et réessayez.

Je ne suis pas sûr que ce soit réellement une bonne réponse à la question car cela n'explique pas comment Postfix est engendré et démoli, mais j'espère que cela aidera à répondre à la question.

zigg
la source
7

Les démons ou serveurs SMTP sont là pour recevoir du courrier, pas pour l'envoyer. Dans votre exemple, il mails'agit uniquement d'un client de messagerie, et il se connecte à tout serveur défini par l'enregistrement DNS MX approprié de bar.com, et n'a pas besoin qu'un serveur local soit en cours d'exécution pour ce faire.

Cependant, en fonction de votre configuration de messagerie, vous devrez peut-être vous connecter à un serveur de messagerie sortant pour vous authentifier, ou si rien d'autre juste pour fournir l'expéditeur et les adresses de retour, etc. Maintenant, vous pouvez faire tout cela à la ligne de commande en passant la bonne paramètres sur le terminal, mais tant que vous avez configuré votre application Mail, cette configuration est déjà stockée, et en activant simplement temporairement le sous-système de messagerie, les commandes du terminal peuvent récupérer ces informations et ont maintenant un ou plusieurs serveurs smtp de messagerie, ils peuvent choisissez d'envoyer des messages sortants. Il mettra alors fin aux processus une fois terminé.

Vous pouvez tester tout cela sur la ligne de commande et envoyer le courrier sans avoir à utiliser un client de messagerie. Je ne suis pas sur un Mac, donc ces commandes peuvent nécessiter une modification par quelqu'un qui l'est, mais vous pouvez le faire:

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)

Lisez ceci pour plus d'informations sur l'envoi d'e-mails via telnet - c'est un excellent outil de débogage

stuffe
la source
Bien que votre réponse ait reçu le plus de votes, elle est fausse. Mac générera un Postfix pour recevoir l'e-mail et s'arrêter automatiquement comme @zigg suggéré ci-dessus. Merci pour vos efforts de toute façon.
Yoga
Ce n'est pas que c'est incorrect en tant que tel, tous les détails sont corrects, mais cela ne répond pas nécessairement à votre question dans sa forme actuelle. Modifié pour le faire.
stuffe
@stuffe a déclaré: "Les démons ou serveurs SMTP sont là pour recevoir du courrier, pas pour l'envoyer". Je dois vous prier de différer. Comme il s'agit d'un commentaire, je ne citerai que Wikipedia: "Les applications de messagerie client de niveau utilisateur utilisent généralement SMTP uniquement pour envoyer des messages"
Seamus
1

Je pense qu'il mailutilise toujours sendmail local pour envoyer des mails. Chez OSX, sendmail est postfix. Et il est définitivement utilisé.

Vous pouvez vérifier les en-têtes de courrier Received: by [Your-Mac] (Postfix, from userid ....

Néanmoins, ce n'est pas une bonne idée d'utiliser mail(ou mieux postfix) comme ça. La meilleure pratique serait d'utiliser un hôte intelligent pour votre Postfix local afin d'éviter les restrictions de pare-feu souvent utilisées.

Vous pouvez trouver une solution sur SMTP Smart Host Setup pour Postfix dans Snow Leopard qui fonctionne pour moi (également sur Lion, Mountain Lion).

dor
la source
De l'en-tête, j'ai trouvé ... Reçu: par 10.194.242.101 avec l'identifiant SMTP xxx; ... X-Reçu: par 10.68.92.196 avec l'identifiant SMTP yyy; ... mais mon IP interne est 192.168.xx
Yoga