"Da dies zu Entwicklungszwecken dient und ich mit anderen als meinen eigenen E-Mail-Adressen testen muss, muss der Befehl sendmail eine E-Mail akzeptieren, aber nicht tatsächlich zustellen. Das Archiv befindet sich also an einem Ort, an dem ich nachsehen kann daran."
Sie müssen es noch liefern. Sie müssen nur überschreiben, "wo" es geliefert wird.
"Was ist der einfachste Weg, einen Mailserver so zu installieren, dass der Befehl sendmail ALLE E-Mails an ein lokales Verzeichnis weiterleitet? Das heißt, ich möchte NICHT, dass E-Mails an das Internet gesendet werden."
Dies kann tatsächlich nur mit dem Standard-Postfix-Installationspaket durchgeführt werden (kein Postfix-PCR erforderlich).
1.) Bearbeiten Sie nach einem Tutorial hier 2 Zeilen in der /etc/postfix/master.cf
Datei, um zu verhindern, dass E-Mails extern zugestellt werden (sie bleiben in der lokalen E-Mail-Warteschlange hängen):
smtp unix - - - - - local
relay unix - - - - - local
2.) Erstellen Sie eine Datei in /etc/postfix
aufgerufen virtual
. Fügen Sie die folgende Zeile in diese Datei ein und ersetzen Sie sie <USERNAME>
durch den lokalen Benutzerkontonamen, an den alle E-Mails gesendet werden sollen:
/.*/ <USERNAME>
3.) Führen Sie den folgenden Befehl aus, um die richtige Datenbankdatei für Postfix zu erstellen und diese neue "virtuelle Alias-Map" nachzuschlagen. Die neue, automatisch generierte Datenbankdatei heißt "virtual.db".
sudo postmap /etc/postfix/virtual
4.) Fügen Sie die folgende Zeile hinzu /etc/postfix/main.cf
virtual_alias_maps = regexp:/etc/postfix/virtual
5.) Postfix neu starten:
sudo service postfix restart
Jetzt werden alle E-Mails, unabhängig vom Absender, Empfänger oder Programm, die auf diesen SMTP-Server verweisen, lokal an den angegebenen Benutzer gesendet. Es gibt zahlreiche Optionen zum Lesen / Abrufen dieser Nachrichten. Wenn Sie einen IMAP- oder POP3-Courrier (z. B. Dovecot ) installieren , können Sie einen Mail-Benutzeragenten (Thunderbird, Outlook usw.) verwenden, um eine Verbindung zu Ihrem lokalen Postfach herzustellen und die Nachrichten zu lesen.
<USERNAME>
in erwähnt wirdetc/aliases
, sonst erhalten Sie Fehler. Wenn Sie einen Maildir für diesen Benutzer verwenden möchten, müssen Sie die Zeilenhome_mailbox = Maildir/
undmailbox_command =
zu Ihrem/etc/postfix/main.cf
Sehen Sie hier einen anderen coolen Ansatz. So fangen Sie E-Mails ab, die mit PHP auf Ihrem lokalen Server gesendet wurden .
Fügen Sie dieser neuen "sendmail" -Datei das folgende PHP-Skript hinzu:
Hinzufügen
sendmail_path = /usr/local/bin/sendmail
zu/etc/php5/apache2/php.ini
.Jetzt befinden sich alle Ihre Mails im
/var/log/mail
Ordner.PS Auch möchten Sie vielleicht hinzufügen
shell_exec("chmod 777 /var/log/mail/ -R");
zu/usr/local/bin/sendmail
quelle
Ein anderer Ansatz besteht darin, einen "FakeSMTP" -Server auszuführen , einen plattformübergreifenden SMTP-Handler. Der gesamte Zweck besteht darin, E-Mails zu empfangen, zu speichern und mit Ihrem konfigurierten E-Mail-Client anzuzeigen.
quelle
Ich habe genau eine ähnliche Umgebung. In den meisten Online-Dokumentationen zum Einrichten von Postfix wird jedoch empfohlen, während des Installationsvorgangs die Option Internet Site auszuwählen . Ich denke, dies ist ein Overkill für einen lokalen Entwicklungsserver nur auf meinem Computer. Also mache ich für mich Folgendes
Angenommen,
/etc/hostname
enthältMyDevMachine
; Ich stelle sicher, dass/etc/hosts
das einen Eintrag enthält127.0.1.1 MyDevMachine
Wenn ich Postfix installiere, würde ich nur Lokal auswählen und dann für die Domäneneinstellung sicherstellen, dass diese Option festgelegt
MyDevMachine
ist.Weil ich möchte, dass alle E-Mails an meinen Entwicklungsbenutzer gesendet werden und der Name dieses Entwicklungsbenutzers unter Ubuntu lautet
devuser
; Ich erstelle daher eine Datei namens/etc/postfix/vmaps
. Der Inhalt dieser Datei ist/.*/ devuser
. Dies würde die Zustellung aller E-Mails ermöglichendevuser
Ich führe dann das aus
sudo postmap /etc/postfix/vmaps
, das schließlich erstelltvmaps.db
(eine Art Aktivierung dieser virtuellen Zuordnung).Suchen Sie die Datei
/etc/postfix/main.cf
und hängen Sie sie mit der folgenden Codezeile an (wodurch Postfix angewiesen wird, die zuvor erstellte virtuelle Zuordnung zu verwenden):virtual_alias_maps = regexp:/etc/postfix/vmaps
Starten Sie Postfix neu
sudo service postfix restart
quelle