Simple Machines Forum und SMTP TLS

intelinsider

intelinsider

coffee addicted
Moin Moin Kameraden,

und zwar sitze ich vor folgendem Problem, seit kurzem arbeitet fuer mich ein SMF (Simple Machines Forum) CMS. Ich denke das werden einige kennen oder auch nicht, wobei ich denke das spielt gerade nicht "die Hauptrolle".

Auf dem gleichen System laeuft ein Postfix SMTP Server der nur gesicherte Verbindungen entgegen nimmt somit ist die TLS Funktion unausweichlich, es ist fuer mich auch keine Loesung hier an der Verschluesselung zu schrauben das SMF Mails versenden kann.

Es geht hier ganz einfach um die Funktion Newsletter an die Mitglieder und vor allem Aktivierungsmails fuer die User Accounts sowie "Passwort vergessen?" E-Mails verschicken zu koennen.

Nun war die Suche ueber dieses Feature im SMF Forum am erfolgreichsten und brachte mir etwas aufschluß, zuerst war die rede hier davon in den Einstellungen zum SMTP einfach tls:// oder ssl:// vorzuhaengen, dieses erbrachte aber keinen Erfolg. Hier wird von der Subs-Post.php Daten geredet die ich in dem entsprechenden Pfad liegen habe.

Diese beiden Bloecke wie dort beschrieben tauschte ich aus, vorher erfolgte ein Login am STMP so:
Code:
connect from unknown[xxx.xx.xx.xxx]
lost connection after UNKNOWN from unknown[xxx.xx.xx.xxx]
disconnect from unknown[xxx.xx.xx.xxx]

Nach der Aenderung erhielt ich einen etwas anderen Output:
Code:
connect from unknown[xxx.xx.xx.xxx]
warning: unknown[xxx.xx.xx.xxx]: SASL PLAIN authentication failed:
lost connection after AUTH from unknown[xxx.xx.xx.xxx]
disconnect from unknown[xxx.xx.xx.xxx]

Block im Original
Code:
if ($modSettings['mail_type'] == 1 && $modSettings['smtp_username'] != '' && $modSettings['smtp_password'] != '')
	{
		// !!! These should send the CURRENT server's name, not the mail server's!

		// EHLO could be understood to mean encrypted hello...
		if (server_parse('EHLO ' . $modSettings['smtp_host'], $socket, null) == '250')
		{
			if (!server_parse('AUTH LOGIN', $socket, '334'))
				return false;
			// Send the username and password, encoded.
			if (!server_parse(base64_encode($modSettings['smtp_username']), $socket, '334'))
				return false;
			// The password is already encoded ;)
			if (!server_parse($modSettings['smtp_password'], $socket, '235'))
				return false;
		}
		elseif (!server_parse('HELO ' . $modSettings['smtp_host'], $socket, '250'))
			return false;
	}
	else
	{
		// Just say "helo".
		if (!server_parse('HELO ' . $modSettings['smtp_host'], $socket, '250'))
			return false;
	}

Block nach Modifizierung:
Code:
if ($modSettings['mail_type'] == 1 && $modSettings['smtp_username'] != '' && $modSettings['smtp_password'] != '')
        {
                // !!! These should send the CURRENT server's name, not the mail server's!

                // EHLO could be understood to mean encrypted hello...
                if (server_parse('EHLO ' . $modSettings['smtp_host'], $socket, null) == '250')
                {
                        //STARTTLS
                        server_parse('STARTTLS', $socket, null);
                        stream_socket_enable_crypto($socket,true,STREAM_CRYPTO_METHOD_TLS_CLIENT);
                        server_parse('EHLO ' . $modSettings['smtp_host'],$socket,null);

                        if (!server_parse('AUTH PLAIN', $socket, '334'))
                                return false;
                        // Send the username and password, encoded.
                        if (!server_parse(base64_encode($modSettings['smtp_username']), $socket, '334'))
                                return false;
                        // The password is already encoded ;)
                        if (!server_parse($modSettings['smtp_password'], $socket, '235'))
                                return false;
                }
                elseif (!server_parse('HELO ' . $modSettings['smtp_host'], $socket, '250'))
                        return false;
        }

Mein SMTP agiert mit 'auth plain' sofern die TLS Verbindung steht, jetzt frage ich mich ob man dieses Stueck Code irgendwie anpassen kann sodass ich Problemlos E-Mails vom SMF CMS versenden lassen kann. Mein PHP unterstuetzt OpenSSL sowie hier erwaehnt.

Wie muss ich vielleicht jetzt genauer diesen Block aendern um vielleicht einen Login zu erreichen?. Oder ist das ueberhaupt gar nicht zu realisieren?.


mfg


weiterfuehrende Links:
http://www.simplemachines.org/community/index.php?topic=167867.0
http://www.simplemachines.org/community/index.php?topic=147905.0
 
Zuletzt bearbeitet:

Ähnliche Themen

Nginx als Reverse Proxy für Nextcloud und Emby

dovecot und postfix Konfiguration Problem

CentOS 6.3 RADIUS - Keine Verbindung möglich

Windows clients können nicht mehr auf lange laufendes System zugreifen

Weiterleiten mit Mailx

Zurück
Oben