SMTP-Benutzernamen, die / enthalten, sollten akzeptiert werden.
/ ist ein gültiges Zeichen für einen SMTP-Benutzernamen gemäß RFC3696:
Ohne Anführungszeichen können lokale Teile aus jeder Kombination von
alphabetischen Zeichen, Ziffern oder Sonderzeichen bestehen
! # $ % & ’ * + - / = ? ^ _ ` . { | } ~
Korrekturweg
Das Skript schlägt bei einem sed-Befehl fehl, der standardmäßig / als Trennzeichen verwendet.
Da der Doppelpunkt (:) kein akzeptables Zeichen für den local-part einer E-Mail-Adresse ist, kann er anstelle von / verwendet werden, ohne Nebenwirkungen wie bei anderen Zeichen wie Komma oder Semikolon (mit Ausnahme, dass Doppelpunkte in den sed-Mustern maskiert werden müssen – beachten Sie, dass die Verwendung von ] anstelle von / die Notwendigkeit der Maskierung von Doppelpunkten beseitigen würde):
Zeile 589: smtp_domain=$(echo $notification_email | sed -e \"s/.*@//\") sollte sein smtp_domain=$(echo $notification_email | sed -e \"s:.*@::\")
Zeile 648: DISCOURSE_DEVELOPER_EMAILS verwendet , zur Trennung von E-Mail-Adressen, daher könnte es auch sicher : verwenden
Zeile 675 ist die Quelle meines Fehlers: sed -i -e \"s/^ #\\?DISCOURSE_SMTP_USER_NAME:.*/ DISCOURSE_SMTP_USER_NAME: $smtp_user_name/w $changelog\" $web_file könnte sein sed -i -e \"s:^ #\\?DISCOURSE_SMTP_USER_NAME\\:.*: DISCOURSE_SMTP_USER_NAME\\: $smtp_user_name:w $changelog\" $web_file oder sed -i -e \"s]^ #\\?DISCOURSE_SMTP_USER_NAME:.*] DISCOURSE_SMTP_USER_NAME: $smtp_user_name]w $changelog\" $web_file
Ich habe keine Kontrolle über diesen Code, aber ich habe ihn vor langer Zeit geschrieben. Das ist eine großartige Lösung. Daran hätte ich denken sollen. Ich würde vermuten, dass ein PR willkommen wäre.
Leider habe ich den Zugriff auf mein Github-Konto verloren. Sie verlangen einen Code, und ich benutze die verknüpfte E-Mail nicht mehr, daher habe ich diese Plattform einfach nicht mehr genutzt, außer um öffentlichen Code zu klonen.