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
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 25
avant 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.
Les démons ou serveurs SMTP sont là pour recevoir du courrier, pas pour l'envoyer. Dans votre exemple, il mail
s'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
Je pense qu'il
mail
utilise 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 mieuxpostfix
) 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).
la source