[LINUX] Änderungen in qmail-remote.c, um in RCPT TO: von qmail mit smtp-auth-Support-Patch immer die in smtproutes angegebene "E-Mail-Adresse" zu verwenden

Vorwort

Es ist mehr als 15 Jahre her, seit die OB25-Gegenmaßnahmen beim Anbieter begonnen haben, aber vor ungefähr zwei Jahren hat der Mailserver des SMTP-AUTH-kompatiblen SUBMISSION-Ports mit den OB25-Gegenmaßnahmen bei dem von mir verwendeten Anbieter "mit SMTP-AUTH" vorbereitet Es wurde stillschweigend eine neue Maßnahme eingeführt, die "die Weiterleitung von E-Mails ablehnt, wenn Sie in MAIL FROM: einen anderen Wert als die E-Mail-Adresse des authentifizierten Anbieters angeben".

Es gibt kein Problem, wenn Sie es normal verwenden (?). Wenn Sie jedoch eine eigene Domain erhalten und einen Mailserver (qmail) mit dynamischen DNS betreiben, können Sie von innen E-Mails mit Ihrem eigenen Domainnamen senden. Es wird weg sein.

Vor kurzem habe ich mit qmail gespielt und diese Art von Informationen nicht gesehen, daher denke ich, dass dies eine Nische ist, aber in qmails RCPT TO: mit smtp-auth-kompatiblem Patch immer "Mail in smtproutes angegeben" Ich möchte die Änderungen in qmail-remote.c teilen, um "Adresse" zu verwenden.

Voraussetzungen

Der qmail-Server wird in einer eigenen Domäne betrieben und die folgenden Patches werden angewendet.

Fordern Sie die E-Mail-Zustellung an den Mailserver des Anbieters mit smtproutes wie unten gezeigt und smtp-auth mit der E-Mail-Adresse als Client an

touch /var/qmail/control/smtproutes
chown qmailr.root /var/qmail/control/smtproutes
chmod 640 /var/qmail/control/smtproutes
cat > /var/qmail/control/smtproutes << EOF
:FQDN des Mailservers des Anbieters:587 E-Mail-Adresse des Anbieters E-Mail-Passwort des Anbieters
EOF

So überprüfen Sie, ob der Mailserver des Anbieters die gleichen Maßnahmen wie die Präambel hat

#Erstellen Sie eine SMTP-AUTH-Zeichenfolge
printf "%s\0%s\0%s"E-Mail-Adresse des Anbieters E-Mail-Adresse des Anbieters E-Mail-Passwort| openssl base64 -e | tr -d '\n'; echo 
#Die folgende base64ized SMTP AUTH-Zeichenfolge wird angezeigt. Kopieren Sie daher die angezeigten Zeichen.
Zm9vQGV4YW1wbGUuY29tAGZvb0BleGFtcGxlLmNvbQBwYXNzd29yZA==

#Verbindungsmethode, wenn Verschlüsselung erforderlich ist
openssl s_client -quiet -ign_eof -Verbinden Sie den Mailserver des Anbieters:Port-Nummer-tls1_2
#Verbindungsmethode, wenn einfacher Text akzeptabel ist
Telnet-Provider-Mail-Server-Portnummer

__ Wenn Sie eine Verbindung herstellen können, wird die folgende Anzeige angezeigt. Geben Sie daher nur den grauen Teil ein (der Anzeigeinhalt unterscheidet sich je nach Server geringfügig) __

IP-Adresse des versuchten Mail-Servers ... Verbunden mit dem Namen des Mailservers Escape character is '^]'. 220 Mail-Servername ESMTP-Dienst bereit EHLO localhost 250-Mail-Servername 250-DSN 250-8BITMIME 250-PIPELINING 250-AUTH=LOGIN 250-AUTH LOGIN CRAM-MD5 PLAIN 250 SIZE 20971520 AUTH PLAIN Vorgefertigter SMTP AUTH String 235 PLAIN authentication successful MAIL FROM: foo @ example.com ***… Die Annahme wird abgelehnt, wenn MAIL FROM von der SMTP-AUTH-Adresse abweicht *** 553 MAIL FROM:[email protected] does not match authenticated user name MAIL FROM: E-Mail-Konto des Anbieters ***… Wird akzeptiert, wenn MAIL FROM mit dem SMTP AUTH-Benutzernamen identisch ist *** 250 MAIL FROM: OK QUIT

Änderungen in qmail

Wenn dies nicht akzeptiert wird, ändern Sie die Umgebung der Zeile 264 von qmail-remote.c so, dass die SMTP-AUTH-E-Mail-Adresse in MAIL FROM: angegeben wird. (Auskommentiert ist der Code vor der Änderung)

qmail-remote.c


substdio_put(&smtpto,auth_smtp_user,auth_smtp_user.len);    // substdio_put(&smtpto,sender.s,sender.len);

Danach wie gewohnt (bitte beenden Sie qmail bei Bedarf)

make setup check

Danke für deine harte Arbeit

Recommended Posts

Änderungen in qmail-remote.c, um in RCPT TO: von qmail mit smtp-auth-Support-Patch immer die in smtproutes angegebene "E-Mail-Adresse" zu verwenden