Wenn ich den Befehl im Terminal versuche, wird eine E-Mail gesendet. Ich habe überprüft, ob kein lokales SMTP ausgeführt wird. Welchen Mechanismus verwendet Apple also hinter den Kulissen?
echo "Hello" | mail -s "Test" foo@bar.com
mail
Unter OS X scheint Postfix tatsächlich lange genug zu erscheinen, um die E-Mails zu bearbeiten, und sie kurze Zeit später abzureißen.
Um dies in Aktion zu sehen, versuchen Sie es telnet localhost 25
vor dem Mail-Befehl, dann unmittelbar danach, warten Sie 5 Minuten und versuchen Sie es erneut.
Ich bin nicht sicher, ob dies tatsächlich eine richtige Antwort auf die Frage ist, da es nicht erklärt, wie Postfix erzeugt und abgerissen wird, aber hoffentlich hilft es bei der Beantwortung der Frage.
SMTP-Daemons oder -Server empfangen E-Mails und senden sie nicht. In Ihrem Beispiel mail
handelt es sich lediglich um einen E-Mail-Client, der eine Verbindung zu einem beliebigen Server herstellt, der durch den entsprechenden DNS-MX-Eintrag von definiert ist. Dazu bar.com
muss kein lokaler Server ausgeführt werden.
Abhängig von Ihrem E-Mail-Setup müssen Sie sich möglicherweise bei einem ausgehenden Mailserver anmelden, um sich zu authentifizieren, oder wenn nichts anderes nur Absender- und Absenderadressen usw. bereitstellt. Jetzt können Sie dies alles über die Befehlszeile tun, indem Sie die entsprechenden Anweisungen übergeben Parameter auf dem Terminal, aber solange Sie Ihre Mail-App eingerichtet haben, ist diese Konfiguration bereits gespeichert. Durch einfaches vorübergehendes Starten des Mail-Subsystems können die Terminalbefehle diese Informationen abrufen und verfügen nun über einen oder mehrere Mail-SMTP-Server Wählen Sie, ob Sie ausgehende Nachrichten senden möchten. Nach Abschluss werden die Prozesse beendet.
Sie können dies alles über die Befehlszeile testen und die E-Mail senden, ohne einen E-Mail-Client verwenden zu müssen. Ich bin nicht auf einem Mac, daher müssen diese Befehle möglicherweise von jemandem bearbeitet werden, aber Sie können dies tun:
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)
Lesen Sie dies, um weitere Informationen zum E-Mail-Versand über Telnet zu erhalten - es ist ein großartiges Debugging-Tool
Ich denke, verwendet
mail
immer lokale sendmail, um Mails zu senden. Unter OSX ist sendmail ein Postfix. Und es wird definitiv verwendet.Sie können die Mail-Header überprüfen
Received: by [Your-Mac] (Postfix, from userid ...
.Trotzdem ist es keine gute Idee, so etwas zu verwenden
mail
(oder besserpostfix
). Es wird empfohlen, einen Smart Host für Ihr lokales Postfix zu verwenden, um häufig verwendete Firewall-Einschränkungen zu vermeiden.Unter SMTP Smart Host Setup für Postfix in Snow Leopard finden Sie eine Lösung, die für mich funktioniert (auch für Lion, Mountain Lion).
quelle