SMTP (lokal) -> POP3 (lokal)

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 15.11.2009 15:06:14

Ich habe den postfix SMTP Server installiert.
Nun weiss ich noch nicht, welchen POP3 / IMAP Server für Debian empfehlenswert wäre.

Wie auch immer - ich möchte zusätzlich den E-Mail Verkehr aus Webentwicklungsgründen simulieren.
Dazu möchte ich über den SMTP-Server, der lokal auf dem Debian läuft, eine E-Mail an eine bestimmte E-Mail-Adresse versenden.
Dann soll ein POP3 / IMAP (wobei IMAP hierbei nicht so wichtig, nebensächlich für mich ist) -Server, der auch lokal auf dem Debian läuft,
diese versandte E-Mail empfangen und dann möchte ich diese von einem E-Mail Client auch abholen können.

Wichtigt ist, dass der Debian Server diese Simulation auch dann durchführen können soll, wenn keine Internet-Verbindung vorhanden ist.
Wie muss ich hierzu den postfix und den POP3-Server (welchen würdet ihr mir dazu empfehlen) einrichten, damit diese Art von Simulation möglich wird?
- Und muss ich den DNS (avahi) auch konfigurieren?

Vielen Dank für eure Antworten!
Mit freundlichen Grüßen
Innocentus

Benutzeravatar
Meillo
Moderator
Beiträge: 9285
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Meillo » 23.11.2009 14:39:17

Innocentus hat geschrieben:Dazu möchte ich über den SMTP-Server [...] eine E-Mail an eine bestimmte E-Mail-Adresse versenden.
Dann soll ein POP3[...]Server [...] diese versandte E-Mail empfangen und dann möchte ich diese von einem E-Mail Client auch abholen können.

Wichtigt ist, dass der Debian Server diese Simulation auch dann durchführen können soll, wenn keine Internet-Verbindung vorhanden ist.
Das wird nur gehen wenn die Email an eine lokale Adresse geht, denn andernfalls könnte der SMTP-Server die Mail ja nicht ausliefern. Er würde sie im Spool-Verzeichnis lassen und warten bis der Zielhost erreichbar ist (= Internetverbindung vorhanden).

Wenn es dir darum geht, mit beispielsweise einem PHP-Script, eine Mail zu verschicken und zu testen ob der Versand klappt, dann sollte ein SMTP-Server (= MTA) ausreichend sein. Wenn du an user@localhost sendest, dann wird die Mail (je nach Konfiguration des MTA) vermutlich in /var/spool/mail gelegt und kann mit einem beliebigen MUA (z.B. mailx) gelesen werden.

Mailtransport: Script --> MTA --> /var/spool/mail (wird dort vom MUA ausgelesen)


Wenn die Mail an einen beliebigen Empfänger gehen soll und du offline bist, dann könntest du dir mit mailq die Queue des MTAs anschauen. Dort sollte die Mail auftauchen. Ausgeliefert wird sie ja nicht weil du offline bist. Irgendwie solltest du einen gequeuete Mail auch wieder löschen können, ich kenne mich mit Postfix nicht gut genug aus. Dieses Vorgehen ist eher eine Notlösung, aber vielleicht reicht's ja aus.
Use ed once in a while!

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 26.11.2009 00:02:52

Vielen Dank für Deine Antwort!

Als MUA würde ich gerne Outlook (läuft auf einem Windows XP SP3) verwenden.
- Das wird dann wahrscheinlich nur mit POP3 gehen.
Wie leite ich die Mail aus dem Postfix-Buffer zu der POP3-Mailbox weiter?

Mit freundlichen Grüßen
Innocentus

Benutzeravatar
Meillo
Moderator
Beiträge: 9285
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Meillo » 26.11.2009 11:19:26

Innocentus hat geschrieben:Als MUA würde ich gerne Outlook (läuft auf einem Windows XP SP3) verwenden.
- Das wird dann wahrscheinlich nur mit POP3 gehen.
Wie leite ich die Mail aus dem Postfix-Buffer zu der POP3-Mailbox weiter?
Welche der von mir oben beschriebenen Setups meinst du jetzt?

Beim Letzten kommt gar kein MUA zum Einsatz.

Ich schätze mal, dass dein Postfix auf einem GNU/Linux-Kiste läuft, somit folgere ich, dass du die Mails mit Outlook von einem anderen Rechner aus lesen willst. Dazu brauchst du dann einen POP3/IMAP-Server. Damit kenne ich mich aber nicht aus.

Beschreibe doch nochmal was genau du willst, erweitert um die Kommentare aus meinen Posts. Nur wenn wir genau wissen was gewünscht ist, können wir auch zielgerichtet helfen.
Use ed once in a while!

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 26.11.2009 11:45:33

Ich habe einen Debian als Entwicklungs-Server laufen.
Ich teste auf diesem Entwicklungs-Server verschiedenste PHP-Applikationen.
Nun möchte ich auch das Senden von E-Mails dort testen.

Jetzt ist es so, dass diese E-Mails recht groß sind und das diese dann erst über das Internet gesendet werden müssen.
Ich möchte jedoch diese E-Mails möglichst augenblicklich begutachten können. - Und ich möchte nicht auf eine funktionierende, schnelle Internet-Verbindung für die Entwicklung von Webapplikationen angewiesen sein.

Die optimale Lösung für mich wäre also ein lokaler SMTP- und ein lokaler POP3- (IMAP wäre hier unnötig) Server
Ich habe mich jetzt für postfix als SMTP-Server und dovecot-pop3d als POP3-Server entschieden - falls dies für meine Zwecke nicht optimal sein sollte, dann kann ich das natürlich noch ändern.

Ein PHP-Skript auf der Testserverumgebung soll jetzt an den lokalen SMTP-Server eine E-Mail senden.
Dieser lokale SMTP-Server soll diese E-Mail dann gleich an den auch dort lokal vertretenen POP3-Server übergeben.
Dann würde ich mit Outlook, welches auf einem anderen System installiert (das ist unvermeidlich - ich muss ja auch für Outlook unter realistischen Bedingungen testen) diese E-Mail von dem Debian-Testserver abholen.

Bei der Installation des postfix-SMTP Servers habe ich local only eingestellt.
Was muss ich jetzt noch einstellen, damit die an den SMTP-Server versandte E-Mail zu dem POP3-Postfach wandert?

Vielen Dank für eure Antworten!
Mit freundlichen Grüßen
Innocentus

Benutzeravatar
Meillo
Moderator
Beiträge: 9285
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Meillo » 26.11.2009 11:57:13

Innocentus hat geschrieben:Ein PHP-Skript auf der Testserverumgebung soll jetzt an den lokalen SMTP-Server eine E-Mail senden.
Das macht PHP beim Aufruf von mail() automatisch, AFAIK.
Dieser lokale SMTP-Server soll diese E-Mail dann gleich an den auch dort lokal vertretenen POP3-Server übergeben.
Dazu solltest du Postfix dazu bringen, dass es alle Mails an ein bestimmtes Mailkonto ausliefert. Ich weiß nicht ob das möglich ist, kenne mich mit Postfix nicht so aus. Was aber auf jeden Fall bei Postfix möglich ist, ist alle Mail *zusätzlich* an ein weiteres Konto auszuliefern. Das könnte eine Notlösung sein.
Dann würde ich mit Outlook, welches auf einem anderen System installiert (das ist unvermeidlich - ich muss ja auch für Outlook unter realistischen Bedingungen testen) diese E-Mail von dem Debian-Testserver abholen.
Dazu brauchst du nur ein ganz normales POP3-Setup. POP3-Server auf dem Server (irgendein Howto verwenden), und Outlook von diesem Server abholen lassen (sollte ebenfalls kein Problem sein).


Schau dir mal ein POP3-Server Howto an und setze ihn entsprechend auf. Ich vermute, das der einfach nur bestimmte (oder alle) Mailboxen exportiert. Somit wäre die Mail automatisch vom POP3-Server zugänglich, sobald Postfix sie in die Mailbox geschrieben hat.

Der entscheidende Punkt ist also, Postfix dazu zu bringen alle Mails in eine Mailbox zu stecken. (Ich schätze du willst aus deinen Scripten an reale Mailadressen schicken. Denn wenn du aus PHP immer an test@localhost sendest, dann hätte sich das Problem erübrigt.)
Use ed once in a while!

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 26.11.2009 12:15:20

Vielen Dank für Deine Antwort!

Der POP3-Server läuft jetzt und ich kann auch jetzt E-Mails abholen.

Aus Testgründen würde ich gerne eine SMTP-Authentifizierung mit einem festen Benutzernamen-Passwort-Paar verlangen.
Denn auch das sollte möglichst realistisch bei der Webapplikation getestet werden.

Ich muss also noch postfix dazu bringen, diese E-Mails ohne Umwege (Internet, DNS, etc.) an die Postbox des internen POP3-Servers zu senden.

Mit freundlichen Grüßen
Innocentus

Benutzeravatar
Meillo
Moderator
Beiträge: 9285
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Meillo » 26.11.2009 14:40:22

Innocentus hat geschrieben:Aus Testgründen würde ich gerne eine SMTP-Authentifizierung mit einem festen Benutzernamen-Passwort-Paar verlangen.
Denn auch das sollte möglichst realistisch bei der Webapplikation getestet werden.
Dein PHP-Script nutzt doch einen lokalen Postfix-Aufruf (vermutlich über das Kompatibilitätsinterface /usr/lib/sendmail). Auf diesem Weg gibt es keine Authentifizierung (es wird höchstens geprüft ob der lokale User (vermutlich www-data) Mails senden darf). Auf diesem Weg wird zwischen PHP-Script und MTA auch kein SMTP gesprochen.
Ich muss also noch postfix dazu bringen, diese E-Mails ohne Umwege (Internet, DNS, etc.) an die Postbox des internen POP3-Servers zu senden.
Ja. Und vor allem *alle* Mails, egal an wen sie adressiert sind, sollen in diese eine Postbox wandern.
Use ed once in a while!

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 26.11.2009 15:15:51

Ich verwende allerdings eine SMTP-Klasse in PHP (unter anderem aus Perfomance-Gründen) - es wird das SMTP-Protokoll verwendet.
Wenn das unvorteilhaft sein sollte, dann kann ich auch Sendmail (also die mail()-Funktion verwenden) - falls das nötig wäre für meine Zwecke.

@Meillo: Genau: Ich möchte, dass wirklich alle E-Mail Adressen dann in der Postbox landen.
Ich teste nämlich auch den Versand von kleinen Newslettern; und da möchte ich für jeden Empfänger einzeln testen, ob alles richtig personalisiert wurde.

> Der Postfix SMTP Server hat in seiner Konfigurationsdatei auch einen Verweis auf eine Alias-Tabelle.
Ich bräuchte dann wohl eine Art Wildcard-Alias (*), um alle E-Mail Adressen zum lokalen POP3-Server weiterzuleiten.
Gibt es so etwas überhaupt für den Postfix / die Alias-Tabelle?

Ich habe jetzt über die hosts-Datei den Host Eintrag "mail.domain.tld" nach "127.0.0.1" gemappt.
Wenn ich jetzt mit telnet eine Verbindung zu dem SMTP-Server über den Host "mail.domain.tld" auf Port 25 (normaler SMTP-Port) herstelle, dann erreiche ich diesen auch.
Und den dovecot-POP3 Server kann ich jetzt auch hierüber erreichen. - Über den POP3-Standardport natürlich.

Allerdings: Woher weiss der Postfix jetzt ganz ohne DNS u.ä., dass eine E-Mail an test123@domain.tld zu dem Host mail.domain.tld weitergeleitet werden muss.
- Das mit den Aliasen muss auch noch geregelt werden. Sonst würde Postfix die Mail zurückweisen.

Vielen Dank für eure Antworten!
Mit freundlichen Grüßen
Innocentus

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 26.11.2009 16:01:06

Wäre Virtual Domain Hosting von Postifx das Richtige für mein Problem?:
http://www.postfix.org/VIRTUAL_README.html

Mit freundlichen Grüßen
Innocentus

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 04.12.2009 15:19:09

Ich bin immer noch auf der Suche nach einer Lösung.
Nun kann ich ja beim MTA oder beim MDA ansetzen.
Sollte ich statt postfix besser sendmail verwenden?

Mit freundlichen Grüßen
Innocentus

daniel74
Beiträge: 1755
Registriert: 27.05.2007 14:11:37
Lizenz eigener Beiträge: MIT Lizenz

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von daniel74 » 04.12.2009 15:33:38

Innocentus hat geschrieben:> Der Postfix SMTP Server hat in seiner Konfigurationsdatei auch einen Verweis auf eine Alias-Tabelle.
Ich bräuchte dann wohl eine Art Wildcard-Alias (*), um alle E-Mail Adressen zum lokalen POP3-Server weiterzuleiten.
Gibt es so etwas überhaupt für den Postfix / die Alias-Tabelle?
Natürlich :-)

@example.com email@example.de

Das ist eine Catch-All Adresse...
Innocentus hat geschrieben:Ich habe jetzt über die hosts-Datei den Host Eintrag "mail.domain.tld" nach "127.0.0.1" gemappt.
Wenn ich jetzt mit telnet eine Verbindung zu dem SMTP-Server über den Host "mail.domain.tld" auf Port 25 (normaler SMTP-Port) herstelle, dann erreiche ich diesen auch.
Und den dovecot-POP3 Server kann ich jetzt auch hierüber erreichen. - Über den POP3-Standardport natürlich.

Allerdings: Woher weiss der Postfix jetzt ganz ohne DNS u.ä., dass eine E-Mail an test123@domain.tld zu dem Host mail.domain.tld weitergeleitet werden muss.
Ja nachdem - Postfix stellt Mails automatisch lokal zu,wenn bekannt ist,dass die Domain zu der eigenen,lokalen oder verwalteten Domain gehört. Dies wird über den Parameter "mydomain" in der main.cf festgelegt. Standard ist "localhost,$myhostname..." usw." Wenn es dort eine Übereinstimmung gibt,nimmt Postfix die Mail an und stellt sie lokal zu.

Innocentus
Beiträge: 263
Registriert: 08.03.2009 16:14:08

Re: SMTP (lokal) -> POP3 (lokal)

Beitrag von Innocentus » 04.12.2009 22:04:09

Jetzt gab es schon eine zeitlang ein zweites Thema, welches mit dem hier bei der Antwort vom Sinn her zusammenfallen sollte:
http://debianforum.de/forum/viewtopic.php?f=27&t=116298


Mit freundlichen Grüßen
Innocentus

Antworten