Imap-Verbindung herstellen

crazy_chicken

Erfahrenes Mitglied
Hallo Zusammen,

ich mache sowas zum ersten mal und das klappt nicht. Hab bereits alles mögliche ausprobiert.

PHP:
$1 = imap_open("{imap.strato.de:993}INBOX", "info@domain.com", "pwd") or die(imap_last_error());
$2 = imap_open("{imap.strato.de:993/ssl}INBOX", "info@domain.com", "pwd") or die(imap_last_error());
$3 = imap_open("{imap.strato.de:993/imap/ssl}INBOX", "info@domain.com", "pwd") or die(imap_last_error());  
$4 = imap_open("{imap.strato.de:993/ssl/novalidate-cert}INBOX", "info@domain.com", "pwd") or die(imap_last_error());  
$5 = imap_open("{imap.strato.de:993/novalidate-cert}INBOX", "info@domain.com", "pwd") or die(imap_last_error());

ich bekomme bei:
1) Connection timed out
2) invalid remote specification
3) invalid remote specification
4) invalid remote specification
5) invalid remote specification

Jemand andere vorschläge? :) (Die zugangsdaten sind 100% richtig, da Outlook alles akzeptiert hat, name, pwd, und verbindung über ssl/tls)

Danke !
 
Hi,

versuch mal

PHP:
$1 = imap_open("{imap.strato.de:993 /tls}INBOX", "info@domain.com", "pwd") or die(imap_last_error());

bzw.

PHP:
$1 = imap_open("{imap.strato.de:993 /ssl}INBOX", "info@domain.com", "pwd") or die(imap_last_error());

Achte darauf, dass das Manual hinter der Port-Nummer ein Space gelassen hat, die Flags hängen nicht direkt an der URL an.

EDIT: Hab grad in den Examples gesehen, dass die Leerzeichen doch nicht sein brauchen/dürfen. Dann empfehle ich einfach mal die Verwendung von TLS statt SSL. Wie sieht es eigentlich mit dem Zeritifikat aus, was Strato da liefert? Ist das korrekt signiert?

Hast du Zugriff auf das Webserver-Log? Dann könntest du ja die DEBUG-Flag setzen. Hier ist alles beschrieben:

http://de3.php.net/manual/de/function.imap-open.php

Ich würde mit den Flags rum spielen. SSL, (NO-)TLS, Debug, etc.
 
Zuletzt bearbeitet:
Ich habe gerade tls verwendet, aber dann kommt wieder timeout.
Soweit ich weiß, habe ich leider keinen Zugriff drauf aber ich schaue gleich mal nach.

Danke für die Tipps, werde gleich versuchen noch ein bisschen rum zuspielen.

Wenn jemand noch andere Tipps hat, dann freue ich mich.

Danke!
 
Hmm, wo testest du dein PHP-Script? Ich habe zum ausprobieren hier einen lokalen Webserver installiert (XAMPP tuts zur Not auch). Da hat man auf jeden Fall Zugriff auf die Logs. Ich würde es ja gern rausbekommen, aber ich habe keine Zugriffsdaten für Strato (hab da kein Konto). Wenn du eine Domain hast, und ein Mail-Konto zum testen einrichten kannst, dann könnte ich dir da schon unter die Arme greifen :-)
 
Hier mal Log-Data:

28.12.2013 16:56:37 domain.com [client 91.00.0.0] PHP Warning: imap_open(): Couldn't open stream {imap.strato.de:993/ssl/}INBOX in /mnt/web9/d0/88/53667288/htdocs/domain/email/index.php on line 2

Kann man daran den Fehler erkennen?
 
Nein, eigentlich liefert der Server noch eine Remote-Antwort wie z.B. hier:

Code:
Warning: imap_open(): Couldn't open stream {imap.strato.de:993/ssl/debug}INBOX in D:\web\htdocs\imaptest.php on line 6
Login abortedPHP Warning:  imap_open(): Couldn't open stream {imap.strato.de:993/ssl/debug}INBOX in D:\web\htdocs\imaptest.php on line 6
PHP Notice:  Unknown: Login aborted (errflg=2) in Unknown on line 0

Das "Login aborted" ist hier die Antwort vom Remote-Server.

EDIT: Hier mein Code

PHP:
<?php
$url = "imap.strato.de:993";
$flags = "/ssl/debug";
$startFolder = "INBOX";

$user = "";
$pass = "";

$con = imap_open(sprintf("{%s%s}%s", $url, $flags, $startFolder), $user, $pass);
if(!$con) {
	die(imap_last_error());
}

Damit kann man leicht rumspielen mit den Flags
 
Ich habe es jetzt hinbekommen,

komisch:


imap.strato.de:143

Port ist 143 und nicht, wie es auf der Seite von denen steht. Weiss ich auch nicht. Outlook hat es ja hinbekommen
 
Naja, der Port 993 ist auch offen:

Code:
Discovered open port 143/tcp on 81.169.145.103
Discovered open port 443/tcp on 81.169.145.103
Discovered open port 993/tcp on 81.169.145.103

Und das ist auch der der IMAPs Port:

Code:
993/tcp open     ssl/imaps?
| ssl-cert: Subject: commonName=imap.strato.de/organizationName=Strato AG/stateOrProvinceName=Berlin/countryName=DE
| Issuer: commonName=TeleSec ServerPass DE-1/organizationName=T-Systems International GmbH/stateOrProvinceName=NRW/countryName=DE
| Public Key type: rsa
| Public Key bits: 2048
| Not valid before: 2013-11-07T11:58:53+00:00
| Not valid after:  2014-11-12T23:59:59+00:00
| MD5:   6e60 9073 7625 3265 d043 6990 b50d 03df
|_SHA-1: da57 f83d b909 7706 7e04 3192 7ed6 ab17 311a e7cc
|_ssl-date: 2013-12-28T19:12:15+00:00; -3s from local time.

Möglicherweise hängt es aber direkt mit der Meldung auf der Strato-Seite zusammen, dass ein Login für Konten ab dem 01.12.2013 nur über SSL möglich ist. Vielleicht ist es umgekehrt genauso. Konten vor dem 01.12. müssen weiterhin IMAP Plain verwenden.
 
Zurück