php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.06.2009, 04:19  
phw
Neuer Benutzer
 
Benutzerbild von phw
 
Registriert seit: 24.06.2009
Beiträge: 1
PHP-Kenntnisse:
Anfänger
phw befindet sich auf einem aufstrebenden Ast
Standard Simple Machines Forum, SMTP und STARTTLS

Moin Moin Kameraden,

da ich leider kein erfahrener PHP Programmierer bin wende ich mich an euch in der Hoffnung hier eine Loesung bekommen zu koennen.

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 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 verzichten 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 mit letztendlichem absenden der E-Mail zu erreichen?. Die komplette "Subs-Post" Datei im Original findet ihr hier. Meine Php Version auf dem Server ist 5.1.6, der optimalste Logeintrag von Postfix das die Mail zumindest im Server gelandet ist waere:
Code:
connect from unknown[XX.XXX.XX.XXX]
client=unknown[XX.XXX.XX.XXX], sasl_method=PLAIN, sasl_username=klausdieter
message-id=<1234@meine.tld>
from=<klausdieter@meine.tld>, size=576, nrcpt=1 (queue active)
disconnect from unknown[XX.XXX.XX.XXX]
den Rest vom Greylisting etc habe ich nicht mituebertragen, unter anderem alles Personen Spezifische entfernt in den Logs.


mfg


weiterfuehrende Links:
SSL . TLS for SMTP mail
SSL Support for SMTP

Geändert von phw (24.06.2009 um 20:23 Uhr).
phw ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.06.2009, 20:36  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Ja ist bei dem "optimalsten" Logeintrag die mail angekommen oder nicht ?

ansonsten würde ich sagen, bevor du das händisch versucht, teste doch einfach mal ob du mit einer fertigen klasse wie phpmailer oder Zend_Mail eine mail via deinem smtp-server verschicken kannst ? Dann weist du ob es noch ne sache der konfiguration des mailservers ist oder an was andere liegt.
Ansonsten bietet sich in so einem Fall auch an den mailserver so zu konfigurieren dass er vom localhost den ganzen kram nicht braucht oder man den kram aus php löst, sowas wie msmtp oder esmtp nutzt, die php.ini umkonfiguriert dort als sendmail sein msmtp/esmtp angebit und dort die passenden daten eingibt, dann muss man nicht jedes script umschreiben oder immer smtp nutzen, sondern kann sogar ganz normal mail() nutzen und esmtp/msmtp hat halt ne config mit login-daten.
robo47 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHPMailer Problem ochsi PHP Tipps 2008 7 08.07.2008 10:34
Suche Forum mit folgenden funktionen homezonebenny PHP-Fortgeschrittene 6 03.04.2008 16:45
Forum: Forenstruktur anzeigen &amp;amp; als gelesen markieren PHP-Fortgeschrittene 4 05.06.2005 22:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php smtp tls, php simple forum, smtp starttls, php starttls, php smtp starttls, starttls, lost connection after unknown from, php mail tls, starttls php, zend mail starttls, zend_mail starttls, \lost connection after unknown\, php mail starttls, tls php mail, \lost connection after unknown from\, lost connection after starttls, lost connection after unknown, php mail versenden smtp tls, php mail smtp tls, postfix \lost connection after unknown from\

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum