Mails lesen, die ein postfix SMTP Server empfangen hat, wie?

W

wahlarzt

Neues Mitglied
Thread Starter
Dabei seit
05.05.2004
Beiträge
15
Reaktionspunkte
0
Ich habe einen Postfix server aufgesetzt, der auch soweit funktioniert, dass ich über SMTP Mails an meinen Rechner schicken kann. Ich will diese Mails aber nicht weiterleiten, sondern dann lokal direkt auf dem Rechner lassen und dort lesen bzw. die Anhänge weiter verarbeiten.

ABER: ich blick nicht, wie ich an die Mails dran komme. Wo liegen die? wie öffen ich die, um dann an die Anhänge der Mails dran zu kommen?

Ich habe das file entdeckt, das die Mails speichert (in: /private/var/mail/username), aber die Anhänge /(.pdf's) da drin sind natürlich Buchstabensalat. Also wie?


Gruß und Dank von J. Wahl
 
über die Kommandozeile? Dann schau mal nach "Mutt" bzw. "pine"
 
Original geschrieben von [MN]n0b0dy
über die Kommandozeile? Dann schau mal nach "Mutt" bzw. "pine"
 

Kommandozeile? Im Terminal? Mutt und pine sind keine Befehle!?

Sorry, ich bin da ziemlicher Laie ...
Vielleicht kannst mir aber doch helfen?!
 
schon mal das probiert ?
open /private/var/mail/username/name_der_datei.pdf
 
Hallo, hast du vielleicht meine E-Mail nicht erhalten? Dann solltest du mal deine Adresse in deinem Benutzerprofil erneuern bitte. Habe den Mail-Inhalt hierher kopiert damit es auch noch andere Besucher lesen können.

############################################

Der Postfix-Enabler ist zwar eine gewisse Hilfe um den Postfix-Mail-Dienst zu etablieren, jedoch wird dabei nur eine gewisse Standard-Konfiguration des Servers eingerichtet die meines Erachtens unzureichend ist. Da du Aktionen des Dienstes mit "tail" nachverfolgst, nehme ich an daß das Terminal dir nicht ganz unbekannt ist. Grundsätzlich muß für eine Änderung der Einstellungsdateien des Postfix Root-Account vorhanden sein. Wenn du wie du sagtest allerdings die Mails nur local nutzen willst, sind nicht allzuviel Änderungen nötig.

Mail von deinem Account lassen sich im Terminal ganz einfach mit der Eingabe "mail" abrufen, jedoch die Anhänge nicht öffnen oder bearbeiten. Durch die Nachrichten servt man mit der Entertaste (einfach drücken bis keine Mail mehr angezeigt werden) Anschließend gibt man "quit" ein und die gelesenen Nachrichten werden in deinem Homeverzeichnis in einer Datei namens "mbox" automatisch abgespeichert und "mail" beendet. Mail versendet wird mit "mail Username oder name@domain.com. Dann Entertaste, Text eingeben, Entertaste und absenden mit "ctrl-Taste +d". Und weg ist sie.

Um nun E-Mail auch mit anderen Mail-Clienten anzuzeigen, ist es nötig einen POP3-Server mit aufzusetzen, damit du deine Mail auch local und entfernt mit der Application "Mail" aus der Grafischen Benutzeroberfläche von OS X abrufen kannst. Um das alles nacheinander einzurichten, gehen wir nun der Reihe nach vor. Dazu benötigen wir Root im Terminal, einen Texteditor wie BB-Edit (Light), Texteditor pico im Terminal und sicherlich für dich merkwürdig den Postfix-Enabler. Kann's losgehen?

Datei hostconfig so ändern, daß die relevante Zeile dort so aussieht:

MAILSERVER -YES-

Aber nur wenn du das nicht schon vorher mal getan hast. Das macht man mit "pico /etc/hostconfig", Zeile entsprechend ändern und abspeichern. Ich hoffe du kannst mit "pico" umgehen, das setze ich hier mal voraus.

Postfix-Enabler starten. Du klickst nur oben auf "Mail Server", dann in der Mitte das Feld "Enable POP3" und schließlich "Start POP3", dann wieder oben auf "Advanced" und dort den Punkt "Use the OS X build-in user accounts" aktivieren. Dann "Restart Postfix" unten rechts klicken und abwarten was passiert, Logfile unten zeigt an ob alles geklappt hat. Postfixer beenden.

Im Terminal:

cd /etc/postfix

ls -al

Nun siehst du alle Konfig-Dateien die für deinen Postfix bisher aktiv sind. Zusätzlich ist da noch ein Verzeichnis ".original", dieses wir immer vom Postfix-Enabler angelegt. Darin befindet sich unter anderem immer eine Sicherheis-Kopie der Originaldaten deiner Dateien "main.cf" und "master.cf". Dieses Verzeichnis kopierst du dir nun auf den Desktop. Da es aber vorn einen "Punkt" hat wäre es unsichtbar und du würdest es nicht sehen. Daher mußt du es umbenennen.

cp -R .original /Users/dein Name/Desktop/

mv /Users/dein Name/Desktop/.original /Users/dein Name/Desktop/original

Natürlich in einen Namen ohne Punkt am Anfang, egal welcher. Dann mußt du dem Verzeichnis und seinem Inhalt die Benutzerrechte des Users geben mit dem du zur Zeit eingeloggt bist, damit du die Dateien mit BB-Edit bearbeiten kannst. Angenommen du bist jetzt User "klaus". Dann gibst du im Terminal ein:

chown -R klaus:staff /Users/dein Name/Desktop/original/

Jetzt kannst du die Dateien im Verzeichnis "original" mit BB-Edit öffnen und bearbeiten.
Zunächst die "master.cf". Dort muß wenn nicht schon geschehen die Raute vor der Zeile entfernt werden und die Zeile so abgeändert werden daß sie so aussieht:

smtp inet n - n - - smtpd

Nun die "main.cf" öffnen und vollständig den Inhalt entfernen. Du mußt nun folgenden Inhalt einsetzen und die Variablen auf deine Bedürfnisse anpassen wie sie auf dein System zutreffen. Das sind dein Domain-Name, Ort der Verzeichnisse und Dateien. Localhost ist nicht der Domainname und kann nicht als solcher verwendet werden. Nur an einer Stelle mußt du localhost angegeben, bei mydomain_fallback = localhost:

queue_directory = /private/var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

newaliases_path = /usr/bin/newaliases

mailq_path = /usr/bin/mailq

setgid_group = postdrop

manpage_directory = /usr/share/man

sample_directory = /usr/share/doc/postfix/examples

readme_directory = /usr/share/doc/postfix

mail_owner = postfix

sendmail_path = /usr/sbin/sendmail

debug_peer_level = 2

debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

#home_mailbox = Maildir/

mail_spool_directory = /var/mail

unknown_local_recipient_reject_code = 550
#unknown_local_recipient_reject_code = 450

#luser_relay = postfixer@web.de

header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks

smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10

disable_dns_lookups = no

message_size_limit = 0

##########################################################

myhostname = treff.homeip.net

mydomain = treff.homeip.net

myorigin = treff.homeip.net

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, treff.homeip.net

mynetworks_style = class

mynetworks = 192.168.0.0/24, 127.0.0.0/8

#relayhost = $mydomain

relay_domains = $mydomain, hash:/etc/postfix/relay_domains

#masquerade_domains = postfixer.net

mydomain_fallback = localhost

##########################################################

alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

# relay_recipient_maps = hash:/etc/postfix/relayrec

# local_recipient_maps = hash:/etc/postfix/localrec

# transport_maps = hash:/etc/postfix/transport

# canonical_maps = hash:/etc/postfix/canonical

# virtual_maps = hash:/etc/postfix/virtual

###########################################################

Die anderen Einstellungen kannst du so lassen wenn du willst. Auskommentierte mußt du durch Entfernen der Raute aktivieren, aber dann auch die Dateien "virtual, canonical, transport u.s.w. im Verzeichnis "/etc/postfix" anlegen, konfigurieren und mit dem Befehl im Terminal "postmap /etc/postfix/virtual" zur Datenbank "virtual.db" hashen, sonst stellt Postfix den Betrieb ein. Auf die Verwendung und Bedeutung der Dateien gehe ich jetzt mal nicht ein. Nur soviel: Wenn du auch Mail von und nach außerhalb empfangen und senden willst, mußt du diese konfigurieren, um deinen Mail-Server vor öffentlichem RELAY zu schützen und die Mails den eigentlichen Benutzern zugeordnet werden können. Die Datei "aliases" mußt du nur soweit ändern, daß du (also klaus) die Mail des Root emfangen kannst. Fehlermeldungen, ftp-Ereignisse, Webserver-Mail und andere werden nämlich grundsätzlich nur an den Root gesendet. So erfährst du nie davon wenn du mal eine versehendliche Fehlkonfiguration in deinem System fabriziert hast. Dazu gibst du im Terminal ein:

pico /etc/postfix/aliases

und änderst die betreffende Zeile so ab:

root: klaus (dein Username halt)

und abspeichern. Dann wieder im Terminal eingeben:

newaliases /etc/postfix/aliases

Nun mußt du noch die Dateien "main.cf und master.cf" dort hinlegen wo sie hingehören, im Terminal eingeben:

mv /Users/dein Name/Desktop/original/main.cf /etc/postfix/

mv /Users/dein Name/Desktop/original/master.cf /etc/postfix/

Die alten Daten werden nun durch die aktuellen ersetzt und du kannst das Verzeichnis "original" von deinem Desktop löschen.

Du öffnest jetzt dein Programm "Mail" und legst dort nun einen neuen Standard-POP-Account an. Als Server gibst du 127.0.0.1 ein und trägst deine User-System-Daten bei User und Kennwort ein. In den erweiterten Einstellungen deaktivierst du den Haken "Mail automatisch bei Start abrufen". Du kannst deine Mail nun manuell abrufen, das ist besser wenn dein Mail-Server mal aus ist, denn dann hört Mail ewig nicht auf nach E-Mails in deinem Netzwerk zu suchen. Senden kannst du mit der Konfiguration von Postfix so keine Mail, also bei "Ausgehende Mail" keinen Server angeben. Du kannst aber jeden anderen angeben den du schon hast und für den du einen Sende-Account besitzt.

Das wars dann glaube ich. Du kannst nun alle Applicationen beenden und einen Neustart deines Rechners durchführen.

Der Mailserver startet nun automatisch mit deinem System und lädt immer die neue
Konfiguration wie wir sie erstellt haben. Hast du nun Mail in deinem Account, kannst du sie nun mit "Mail" abrufen in dem du auf das Icon "Empfangen" klickst. Wenn da was irgendwie nicht funzen sollte, mußt du dich nochmal melden. Möchtest du auch Mail von außerhalb empfangen, mußt du in deiner Firewall die Ports 25 und 110 freigeben, wie auch in der NAT deines Routers wenn du einen für die Internetverbindung nutzt. Zur Sicherheit empfehle ich dann noch die weitere Konfiguration von Postfix in der "main.cf" wie ich schon sagte.

Ich hoffe alles ging gut?

Gruß Hairfeti
 
Danke, ist ja der Wahnsinn, solche hilfsbereitschaft.

doch Dein Mail kam an und ich werde per Mail antworten.

Gruß

jw
 
Ein kleines Problem noch:

Alles Funktioniert, Danke!!

Aber: die Konsole zeigt in der Mail.log immer einen Fehler an, der sich zwar nicht sichtbar auswirkt (bis jetzt) dennoch. Der Fehler wird so gemeldet:

"
May 16 14:12:44 localhost ipop3d[463]: pop3 service init from 192.168.xxx.xxx
May 16 14:12:44 localhost ipop3d[463]: Mailbox vulnerable - directory /var/mail must have 1777 protection
May 16 14:12:44 localhost ipop3d[463]: Login user=name host= [192.168.xxx.xxx] nmsgs=2/2
May 16 14:12:45 localhost ipop3d[463]: Mailbox vulnerable - directory /var/mail must have 1777 protection
May 16 14:12:45 localhost ipop3d[463]: Logout user=name host= [192.168.xxx.xxx.] nmsgs=0 ndele=2"

Was ist das und muß / kann ich was ändern? Was ist diese "1777 protection"?

Danke again
 
da wird es wohl um die Zugriffsrechte gehen.

Schau Dír die Rechte an mit:
ls -la /var/mail
und notier dir das sicherheitshalber (der Eintrag mit nur einem Punkt . ist entscheidend)

Dann ändere sie mit:
sudo chmod 1777 /var/mail
wie in dem log-Eintrag angegeben.

Ich vermute es geht um das Sticky-bit (1000).
Mit 777 (drwxrwxrwx) hat jeder Benutzer Schreibrecht auf "/var/mail".
Normalerweise könnte er jetzt Daten löschen, die anderen Benutzern gehören (=> Mailbox vulnerable).

Mit dem Sticky-Bit (+1000) darf er nur seine eigenen Dateien löschen
 
Zuletzt bearbeitet:
Ja, das war's. Danke für die Anleitung. Keine Fehlermeldung mehr.

Super. Danke

jw
 
Noch eine Frage:

Alles läuft. Darf ich nochmal was fragen?

Tail /private/var/log/mail.log sagt mir folgendes:

May 16 18:02:54 localhost postfix/smtpd[949]: lost connection after HELO from unknown[192.168.xxx.xxx]
May 16 18:02:54 localhost postfix/smtpd[949]: disconnect from unknown[192.168.xxx.xxx]
May 16 18:03:29 localhost postfix/smtpd[949]: connect from unknown[192.168.xxx.xxx]
May 16 18:03:30 localhost postfix/smtpd[949]: XX0B2A7839: client=unknown[192.168.xxx.xxx]

Durch den Fehler mit "HELO" entstehen verzögerungen, die Post kommt aber bisher immer trotzdem an. Zu dem "HELO" konnte ich nirgends was finden. Wer kannt das?

THX
 
HELO (oder EHLO) ist ein Teil des smtp Protokolls, das kurz nach dem Verbindungsaufbau die kommunizierenden Rechner zur Identifikation verwenden.
Ich vermute, dass in deinem Fall der reverse lookup fehlschlägt, mit dem Postfix versucht den Namen des anderen Rechners anhand der IP Adresse aufzulösen.

Man kann nämlich den Postfix dazu anweisen, keine mails anzunehmen, wenn der reverse lookup fehlschlägt (=>Spamschutz).
Im Internet bedeutet ein fehlschlagender reverse lookup meist, dass der andere Rechner nicht im DNS eingetragen und somit nicht lokalisierbar ist.
 
Zuletzt bearbeitet:
Aha, das verstehe ich.

Da ist nur Datenverkehr innerhalb des Lokalen Netzes und da ist kein DNS-Server (sollte der da sein? wo?). Innerhalb meines Netzes gibt es auch keinen Spm, daher ist das Problem vielleicht nur kosmetischer Natur?

danke allemal!
 
Mit "HELO" stellt man sich dem SMTP-Server als Client vor, bevor man eine Mail an ihn absendet. Bevorzugte Abfrage aller Mailserver ist aber "EHLO". Anschließend wird dann dem Client die aktuelle Server-Konfiguration und Sicherheitsalgorythmen mitgeteilt. Somit kann der Client sich auf eventuelle Abfragen von Kennworten, ssl-Verschlüsselung, sasl-Datenbanken und weiteres vorbereiten. Verzögerungen sollte es aber dabei nicht geben.

Wenn du von außerhalb Mail auf dem eigenen Server empfängst, geht das ja nur wenn jemand anderes deine derzeitige IP kennt oder wenn du einen DynDNS-Account hast bei dem deine IP in einen Namen umgewandelt wird. Dieses und der Punkt daß du nur die Upload-Geschwindigkeit deines DSL-Internet-Zuganges für Server-Aktivitäten nutzen kannst, macht eben ein Senden von außen nicht gerade schnell.

In deinem Netzwerk allerdings sollte die Geschwindigkeit keine große Rolle spielen.
Ich hoffe du hast in der "main.cf" auch die Netzwerkangaben an deine Gegebenheiten angepasst? (mynetworks = 192.168.0.0/24, 127.0.0.0/8)
 
Original geschrieben von Hairfeti

...
Ich hoffe du hast in der "main.cf" auch die Netzwerkangaben an deine Gegebenheiten angepasst? (mynetworks = 192.168.0.0/24, 127.0.0.0/8)
 

Hallo hairfeti.
Das ist bei dieser Umgebung eigentlich nicht unbedingt erforderlich.
Im Grunde genügt es, wenn er
mynetworks_style = subnet
verwendet.
mynetworks_style = class
ist eigentlich schon wieder unnötig viel.
"mynetworks" benötigt man, wenn man den Postfix (z. B in einem größeren Firmen-LAN mit mehreren Subnetzen) für genau definierte Netzwerksegmente verwenden möchte.

Ansonsten: Gute Arbeit ;)
btw:
Anstelle des Einsatzes des Postfix-Enablers für pop3 könnte man unter OS X AFAIK auch den (nicht lachen) qpopper (sprich: Kuh-Popper) installieren.
So gehts aber auf jeden Fall einfacher.
 
Zurück
Oben Unten