
Hier ist das Setup:
Wir haben eine Domain, mydomain.com. Alles befindet sich auf unserem eigenen Server, außer allgemeinen E-Mail-Konten, die über Gmail laufen.
Derzeit ist Gmail als MX-Eintrag festgelegt.
Der Server muss außerdem verschiedene E-Mail-Aliase für Bugtracker und dergleichen unterstützen. Beispiel:[email geschützt]|/Pfad/zu/issuetracker.script
Ich habe Probleme mit einem Setup, das Folgendes sowohl lokal als auch von den E-Mail-Clients des Benutzers aus ermöglicht.
- guser1 - hat ein Gmail-Konto und ein lokales Konto
- guser2 - hat nur ein Gmail-Konto
- Fehler - hat einen Pipe-Alias in /etc/aliases für den Issue-Tracker
Szenarien
- Mailen Sie an[email geschützt]vom lokalen Host (Crons und dergleichen) muss zum Gmail-Konto gehen
- Mailen Sie an[email geschützt]vom lokalen Host
- Mailen Sie an[email geschützt]muss an das lokale Issue-Tracker-Skript weitergeleitet werden
Der erste Versuch war also, eine Transportkarte zu erstellen. In diesem Szenario würde unser Server so eingerichtet, dass die an MX und guser* gerichteten E-Mails an Gmail gesendet werden. Fügen Sie die Gmail-Benutzer in eine Karte wie folgt ein:
[email protected] smtp:gmailsmtp:25
[email protected] smtp:gmailsmtp:25
Symptome:
- Ignoriert Erweiterungen wie[email geschützt]
- Funktioniert nur, wenn append_at_myorigin = no (wenn auf yes gesetzt, verweigert Gmail die Verbindung mit: E4C7E3E09BA3: to=, relay=none, delay=0.05, delays=0.02/0.01/0.02/0, dsn=4.4.1, status=deferred (connect to gmail-smtp-in.l.google.com[209.85.222.57]:25: Connection rejected))
- da append_at_myorigin auf nein gesetzt ist, haben alle empfangenen E-Mails (unbekannter Absender)
Der zweite Versuch bestand darin, explizite Localhost-Aliase in /etc/aliases festzulegen und eine domänenweite Weiterleitung auf mydomain durchzuführen. Auch hierfür muss der lokale Server als MX festgelegt werden:
root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25
Probleme: * Wenn ich eine Transportzuordnung für eine Domäne erstelle, die mit „$myhostname“ übereinstimmt, wird die Aliasdatei nie analysiert. Wenn also ein lokaler Benutzer (oder Daemon) eine E-Mail wie diese sendet:
mail -s "testing" root < text.txt
Postfix ignoriert den Eintrag /etc/alias und führt die Zuordnung durch zu[email geschützt]und versucht, es an die Gmail-Transportzuordnung zu senden.
Dritter Stich:
Erstellen Sie eine Subdomäne für die Bugs, etwa bugs.mydomain.com. Stellen Sie den MX für diese Domäne auf den lokalen Server ein und belassen Sie den MX für mydomain.com auf dem Gmail-Server.
Probleme: * Löst das Problem mit lokalen Konten nicht. Wenn der Bugtracker also auf eine E-Mail von antwortet[email geschützt], es wird ein lokaler Transport verwendet und der Benutzer erhält die E-Mail nie.
% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport
Antwort1
Wechseln Sie zu virtuell. Lesen Sie die VIRTUELLEN Dokumente per Postfix. So haben Sie viel mehr Kontrolle.
main.cf:
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:
virtuell, listen Sie alle Benutzer auf, die Sie haben
localuser localuser
somealias localuser
guser1 [email protected],guser1
bugs [email protected]
VirtualMailboxMap, liste alle lokalen Benutzer auf, die rechte Seite ist egal!
localuser rhsunused
guser1 rhsunused
Transport:
mydomain.com local:
gmail.mydomain.com smtp:gmailsmtp:25
issuetracker.mydomain.com smtp:[issuetracker ip]:25
Ich hatte dies mit einem Cyrus: Transport für lokale Konten. Ich weiß, dass dies keine vollständige Antwort auf alle Ihre Fragen ist, aber es könnte ein Anfang sein.