Mail-Relay mit Postfix und Android-E-Mail-Client

Status
Für weitere Antworten geschlossen.

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich habe folgendes Problem: entsprechend http://www.synology-wiki.de/index.php/Mail-Relay_mit_Postfix habe ich auf meiner DS414 (DSM 5.2) einen Mail-Relay-Server eingerichtet. Dieser funktioniert auch wie gewünscht für die E-Mail-Client roundcube und Thunderbird.

Wenn ich hingegen E-Mails von meinem Android-Tablet via DS414 nach extern schicke, ist als Absender immer <ds414-user>@localhost.localdomain (habe keine eigene Domain) eingetragen. Mit meinem Verständnis kann seit Postfix 2.2 ein sog. Address Rewriting mit Hilfe von smtp_generic_maps durchgeführt werden (siehe z.B. http://www.postfix.org/ADDRESS_REWRITING_README.html). Nach der Erstellung und Einbindung des generic-Mappingfiles (Inhalt <ds414-user>@localhost.localdomain user@secondleveldomain.tld) haben weiterhin die von meinem Tablet versandten E-Mails den Absender <ds414-user>@localhost.localdomain, was dazu führt, dass sie vom E-Mail-Server der Empfangsseite (t-online) abgelehnt werden.

Im Rahmen der Fehleranalyse habe ich in der main.cf einen falschen Pfad zu der generic-Datei hinterlegt, um eine Fehlermeldung zu provozieren. Da ich keine Fehlermeldung bekommen habe, gehe ich davon aus, dass smtp_generic_maps "mit dem Postfix von Synology nicht funktioniert".

Hat einer von Euch Erfahrung mit smtp_generic_maps bzw. mit der Konfiguration des Android-E-Mail-Client für den Mail-Relay (ggf. liegt hier das Konfigurationsproblem)?

Im voraus vielen Dank für Eure Hilfe.

Andreas
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
1. hast du das generic File mit postmap in ein Postfix DB Format umgewandelt?
2. hast du danach den Postfix neugestartet oder mindestens seine Konfig neu einlesen lassen?
3. was ergibt ein
Code:
postmap -q 'ds414-user@localhost.localdomain' /pfad/zu/deinem/genericFile
?
4. die '<' und '>' sind imho falsch. Wenn schon <ds414-user@localhost.localdomain> bzw kann man die auch weglassen
5. wo genau hast du smtp_generic_maps eingetragen? In der Templatedatei?

Eine Fehlermeldung wegen dem falschen Pfad wirst du höchstens in den Logs sehen. Postfix verweigert desswegen keine Mail (was eine Fehlermail generieren würde). Ist einfach ein Pfad der nicht existiert und wird damit ignoriert. generic_maps ist ja ein optionaler Parameter
Was du auch probieren kannst wäre es mit dem myorigin Parameter zu "spielen" und dort eine gültige Domain einzutragen
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Hallo jahlives

vielen Dank für Deine Unterstützung.

1. hast du das generic File mit postmap in ein Postfix DB Format umgewandelt? => Ja
2. hast du danach den Postfix neugestartet oder mindestens seine Konfig neu einlesen lassen? => Ja
3. was ergibt ein postmap -q 'ds414-user@localhost.localdomain' /pfad/zu/deinem/genericFile => Die in generic eingetragene externe E-Mail-Adresse
4. '<' und '>' waren nur als Marker gedacht und sind nicht Bestandteil der E-Mail-Adresse
5. smtp_generic_maps habe ich aktuell nur in main.cf eingetragen. Ich möchte diese Einstellung erst dann in /template/main.template übernehmen, wenn alles funktionert (ich weiss, dass main.cf nach jedem Neustart der DS durch main.template überschrieben wird)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
dann scheint die generic_maps wirklich nicht verwendet zu werden. Haste mal mit dem myorigin Parameter probiert?
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Habe mit myorigin im main.cf folgende Varianten probiert:

1. myorigin = localhost
2. myorigin = localhost.localdomain

Beides ohne Erfolg.
Habe in der generic-Datei auch andere Varianten für die lokale Adresse ausprobiert (<ds414-user> user@secondleveldomain.tld, <ds414-user>@localhost user@secondleveldomain.tld, <ds414-user>@fritz.box) alles ohne Erfolg.

Gibt es irgendeine Möglichkeit, dass ich mir die E-Mail-Message, die vom Android-Gerät an den Mail-Server geschickt wird, als "Plain-ASCII"-Datei ansehen kann?

Kann hier ggf. der Synology-Support weiter helfen?
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Sind myhostname (Kurzname) und mydomain (irgendwas.de) gesetzt?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
hast du denn auch myorigin=secondleveldomain.tld probiert? Das sollte eigentlich die Domain erzwingen.
Wenn du eine Mail als Plain Text sehen wiillst, dann kannst du entweder im Mailprogramm auf der Empfangsseite die Quelltextansicht wählen oder du verhinderst, dass Postfix die Mail überhaupt zustellen kann und guckst sie dir dann in der Mailqueue an. Dazu könntest du eine smtpd_recipient_restrictions einfügen, welche die Empfangsdomain auf HOLD setzt z.B.
Code:
smtpd_recipient_restrictions = 
 ...
 check_recipient_access hash:/etc/hold
und dann in /etc/hold
Code:
domain.tld HOLD
andereDomain.tld HOLD
postmap und postfix reload nicht vergessen.
Dann kannst du dir die Mailqueue mit dem mailq Kommando anzeigen lassen, das erste Feld dabei ist die Queue-ID, welche du brauchst
Code:
postcat -q QUEUE-ID
sollte dir dann den Quelltext der Mail + die Verwaltungsinfos von Postfix anzeigen
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
myhostname ist standardmäßig localhost (Default von Synology); mydomain ist nicht gesetzt, da ich nicht über keine eigene TLD verfüge. Aus diesem Grund möchte ich ja einen Mail-Relay-Server aufsetzen (der im übrigen auch für Roundcube- und Thunderbird-Clients funktioniert; nur nicht für den E-Mail-Client von Android).
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Habe gerade folgende Unterschiede in den E-Mail-Message-ID's gefunden, wenn sie über Thunderbird oder Android-E-Mail-Client verschickt werden:

Thunderbird: <kryptische ID>@t-online.de
Android-E-Mail-Client: <kryptische ID>@email.android.com
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
die Msg-ID spielt bei deinem Problem kaum eine Rolle. Interessanter bei der Mail von Android wären Envelope Sender und Return-Path
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
In der E-Mail steht drin:
From: "user_1@secondleveldomain_1.tld" <user_1>
Date: Wed, 06 Jan 2016 20:49:16 +0100
To: user_2@secondleveldomain_2.tld

Also eigentlich die erwarteten Werte. Oder habe ich Envelope Sender und Return-Path falsch recherchiert?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Der From Header und der Envelope Sender sind zwei paar Schuhe. Oft identisch, muss aber nicht. Der Envelope Sender resp Return Path wird vom Mailserver anhand des SMTP Dialogs mit dem Client ermittelt/gesetzt (aus dem MAIL FROM "Kommando" während dem SMTP Dialog). Den From resp To Header kann der Client so setzen wie er lustig ist, das ist dem Server egal. Das machen die Spammer ja dauernd, so kommt eine Mail im From von der postbank, aber der Return-path hat nichts mit postbank zu tun. Der Client zeigt jedoch nur den From resp To Header an
Der Server schreibt ja nicht den From oder To Header um, sondern den MAIL FROM oder RCPT TO aus dem SMTP Dialog. Irgendwo im Quellext der Mail steht der Return-path, meist als erste Zeile im Quellext
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
am Anfang schreibst du der Envelope Sender sei ds414-user@localhost.localdomain
Jetzt user_1@.... Passt denn deine generic_map überhaupt noch?
Was du auch mal noch probieren könntest wäre es eine Art Wildcard in der Map zu verwenden
Code:
@localhost.localdomain deinUser@externeDomain.tld
 

Schaeferhoff

Benutzer
Mitglied seit
22. Feb 2015
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Wg. der Usernamen: Ich bin bei der ganzen "Umbenennerei" etwas durcheinander gekommen. Mit user_1 ist ds414_user gemeint.

Inzwischen funktioniert das ganze. Dafür musste ich den Inhalt von generic auch eins zu eins in die canonical eintragen und die Option sender_canonical_maps in main.cf konfigurieren. Auf die Idee gebracht hat mich der Link http://semi-legitimate.com/blog/item/how-to-rewrite-outgoing-address-in-postfix.

Nachdem ich zusätzlich zu der generic-Map auch die canonical-Map verwende, funktioniert der Versand der E-Mails auch einwandfrei von den Android-Clients.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat