Antwort #26 am: 30. Dezember 2016, 10:29:55
Fehler gefunden, lag am php mailer
hier mein anbieter:
Der PHP-Mailer (in dieser Version) hat die SSL-Verbindung nicht korrekt hergestellt. Wir haben eine Änderung in der Datei "includes/external/phpmailer/class.smtp.php" ab Zeile 279 vorgenommen; die Verbindung zum Mail-Server via SSL funktioniert nun.
der neue korrigierte Code bzw die Ergänzung meines Anbieters:
.../htdocs
/includes
/external
/phpmailer
/class.smtp
.php Zeile
279: if ($streamok) { $socket_context = stream_context_create($options); //Suppress errors; connection failures are handled at a higher level // /**
*
* Start KONTENT changes
*
* SSMTP requires a leading 'ssl://' for stream_socket_client
* at the connetion URI because of the connection must be
* allready encrypted
*
* the normal way would be to connect at port 25 (SMTP) and
* then start the encryption with the STARTTLS command
*/ $proto = ''; if( $port == '465' ) { $proto = 'ssl://'; } $this->smtp_conn = stream_socket_client( $proto.$host.':'.$port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT
, $socket_context ); /*
* End KONTENT changes
*/
ich bitte um kommentar....
warum macht der php mailer ein Problem?
hat der Provider jetzt zurecht korrigiert?
möchte lieber eure Meinung statt dem Provider blind zu trauen, kanns leider nicht selbst analysieren da mir die Kentnisse fehlen.
Gruß
chris
Den Hack den dir der Provider in die 'includes/external/phpmailer/class.smtp.php' eingefügt hat solltest Du wieder entfernen, denn er ist unnötig und kann sogar dazu führen, dass das Versenden von E-Mails via SMTP gar nicht mehr funktioniert.
Hintergrund:
In modified v2.0.1 und auch in modified v2.0.0 wird der PHPMailer v5.2.10 eingesetzt und bei dieser Version wird in 'includes/external/phpmailer/class.phpmailer.php' ab Zeile 1347 bestimmt ob 'ssl://' vor den Hostnamen gesetzt werden muss oder nicht, siehe Code unten, wenn deine E-Mailkonfiguration im Shop-Admin für SMTP korrekt ist und die Verschlüsselungsmethode 'ssl' ausgewählt wurde muss das auch funktionieren.
$prefix = '';
$secure = $this->SMTPSecure;
$tls = ($this->SMTPSecure == 'tls');
if ('ssl' == $hostinfo[2] or ('' == $hostinfo[2] and 'ssl' == $this->SMTPSecure)) {
$prefix = 'ssl://';
Tipp:
Wenn Probleme mit 'ssl' auftreten, aber auch wenn keine Probleme mit 'ssl' auftreten, empfehle ich dir versuche es mit 'tls' und Port '587', denn SMTPS ist veraltet und sollte nicht mehr verwendet werden.
Gruss
Hanspeter