5 Stimmen

OS X: Senden von E-Mails an localhost

Zu Testzwecken möchte ich E-Mails an mein localhost-Benutzerkonto und nicht an meinen Webserver senden. Ich bin mir nicht sicher, wie ich dies mit mail.app erreichen kann. Für jede Hilfe wäre ich dankbar.

18voto

Ryan Horrisberger Punkte 937

@Tautologistik

OSX hat einen eingebauten MTA (SMTP-Server), den Sie einschalten können:

sudo launchctl start org.postfix.master   

dann können Sie wie gewünscht Mails an localhost senden


Beispiel für einen SMTP-Server, der von meinem Rechner mit 10.6.1 aus läuft

>telnet 127.0.0.1 25
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host

>sudo launchctl start org.postfix.master

>telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 machinename.example.com ESMTP Postfix

9voto

codelogic Punkte 68703

Wenn Sie nicht speziell Mail.app verwenden möchten, können Sie E-Mails mit dem mail Befehl. Öffnen Sie Terminal und:

mail -s "Testing" `whoami`@`hostname`
<type something>
Ctrl-D to finish and send

Das sind Backticks, keine einfachen Anführungszeichen. whoami gibt den Benutzernamen des aktuellen Benutzers zurück und hostname gibt den Hostnamen des lokalen Rechners zurück. Er könnte auch explizit sein:

mail -s "Testing" john@mymac.local

EDIT: Habe gerade Ihre Klarstellung gelesen. Mail.app speichert seine Daten in ~/Mail, größtenteils in einer SQLite-Datenbank (die Datei "Envenlope Index"). Die Tabellen, die von Interesse sind, sind mailboxes y messages . Der Text der E-Mail wird in einzelnen Dateien in den jeweiligen Verzeichnissen der Postfächer/Ordner gespeichert. Dies wäre wahrscheinlich der richtige Weg, wenn Sie auf E-Mails zugreifen möchten, die von Mail.app (in Echtzeit) abgerufen wurden.

Eine andere Möglichkeit wäre, Ihre E-Mails aus der Mail.app im mbox-Format zu exportieren und mit der von dbr beschriebenen Technik darauf zuzugreifen. Je nachdem, ob ein Echtzeitzugriff erwünscht ist oder nicht, können Sie vielleicht ein Skript erstellen, das den Export automatisiert.

3voto

dbr Punkte 158949

Ich möchte mich bei meinem (lokalen) Mailserver anmelden, auf ein Postfach zugreifen und einige Analysen durchführen. Ich gehe also davon aus, dass lokal ein Mailserver läuft, bin mir aber nicht sicher, wie ich auf ihn zugreifen kann

Die lokale E-Mail wird nicht auf einem POP3/IMAP-Server gespeichert, sondern auf einem UNIX mbox . Eine Datei, die in /var/mail/ (der Dateiname ist das Login des Benutzers)

Zum Beispiel

$ mail dbr
Subject: hi
test
^d # ctrl+d (EOF)
$ cat /var/mail/dbr 
From dbr@parabola.local  Tue Dec 30 13:43:57 2008
Return-Path: <dbr@parabola.local>
X-Original-To: dbr
Delivered-To: dbr@parabola.local
Received: by parabola.local (Postfix, from userid 501)
        id 4FEA1158E36; Tue, 30 Dec 2008 13:43:57 +1030 (CST)
To: dbr@parabola.local
Subject: hi
Message-Id: <20081230031357.4FEA1158E36@parabola.local>
Date: Tue, 30 Dec 2008 13:43:57 +1030 (CST)
From: dbr@parabola.local (dbr)

test

Ich bin mir bei Ruby nicht sicher (ich habe herumgesucht, konnte aber nichts finden, obwohl es zweifelsohne ein Modul dafür gibt), aber ich weiß, dass Python ein maildir.mbox Modul die auf folgende Weise verwendet würde:

>>> msgs = mailbox.mbox("/var/mail/dbr")
>>> for msg in msgs:
...     print "Subject:", msg['subject']
... 
Subject: hi

1voto

Tautologistics Punkte 1488

Es sei denn, Sie verwenden OSX Server, dann gibt es keinen lokal laufenden SMTP/IMAP/POP3-Server. Sie können einen solchen Server sehr einfach einrichten, indem Sie Post Fix Enabler oder, wenn Sie die Kommandozeile nicht stört, verwenden Sie MacPorts um Postfix zu installieren:

sudo port install postfix

1voto

iDiver Punkte 31

LocalhostMail ist eine einfache und schnelle Lösung für Mac OS X, mit der Sie E-Mail-Nachrichten aus Ihrer PHP-Anwendung (oder jeder anderen, die sich auf dem localhost befindet) über das in Mac OS X enthaltene Programm Mail.app versenden können. Wenn Sie PHP verwenden, fügen Sie einfach neue Nachrichten zur MySQL-Datenbank hinzu, und unser Programm sendet sie über ein Mail-Programm. LocalhostMail verwendet Ihr Mailkonto in Mail.app, um diese Nachrichten zu versenden, so dass Sie keinen separaten SMTP-Server für Ihren localhost benötigen. localhostmail.de

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X