IMAP Login schlägt fehl
dbeuchert
- php
0 Der Martin0 dbeuchert0 Der Martin0 ChrisB
Hallo,
ich versuche mich derzeit an einem kleinem PHP-Tool, welches meine IMAP-Inbox abrufen soll. Aber irgendwie komme ich da nicht über den Verbindungsaufbau hinaus.
Das sieht momentan so aus:
<?php
class MailListener {
function __construct($host,$user,$pass) {
$host = gethostbyname($host);
$this->mbox = imap_open ('{'.$host.':993/ssl/novalidate-cert/user='.$user.'}', $user, $password) or die('Could not connect to '.$host.' as user '.$user.' ('.imap_last_error().')');
var_dump(imap_errors());
}
}
$imap = new MailListener('dbeuchert.com','postcard@dbeuchert.com','xxxx');
?>
Fehlermeldung:
Warning: imap_open() [function.imap-open]: Couldn't open stream {81.169.173.100:993/ssl/novalidate-cert/user=postcard@dbeuchert.com} in C:\Users\David\Desktop\dbeuchert\xampp\htdocs\software\mailreader\mail.class.php on line 6
Could not connect to 81.169.173.100 as user postcard@dbeuchert.com (Login aborted)
Ich hab die selben Einstellungen (Server, Port, Benutzername, Passwort, SSL) auch mit Thunderbird probiert und es geht.
Normalerweise frag ich nicht in Foren nach, weil Google mir bisher immer gut geholfen hat - nur hier leider nicht. Hoffe also, dass jemand von euch helfen kann :)
Lieben Gruß,
David
Hi,
ich versuche mich derzeit an einem kleinem PHP-Tool, welches meine IMAP-Inbox abrufen soll. Aber irgendwie komme ich da nicht über den Verbindungsaufbau hinaus.
oft ist es nur eine Kleinigkeit - hier auch, wie mir scheint.
$this->mbox = imap_open ('{'.$host.':993/ssl/novalidate-cert/user='.$user.'}', $user, $password) or die('Could not connect to '.$host.' as user '.$user.' ('.imap_last_error().')');
Unmittelbar nach der schließenden geschweiften Klammer muss AFAIK noch der Name des Mail-Ordners folgen, und zwar ohne weiteres Trennzeichen. Also z.B. '{ ... }INBOX'.
Could not connect to 81.169.173.100 as user postcard@dbeuchert.com (Login aborted)
Yo. Der IMAP-Server weiß nicht, worauf du eigentlich zugreifen willst, und verweigert.
Ich hab die selben Einstellungen (Server, Port, Benutzername, Passwort, SSL) auch mit Thunderbird probiert und es geht.
Ja, T-Bird ergänzt die Ordnernamen selbst, der kennt sich mit IMAP aus. ;-)
Normalerweise frag ich nicht in Foren nach, weil Google mir bisher immer gut geholfen hat
Das ist eine Einstellung, die mir gefällt: Erst mal selbst versuchen, das Problem anzupacken. Wenn das *nicht* fruchtet, kann man immer noch andere um Hilfe fragen.
Ciao,
Martin
Hallo Martin,
danke für deine Hilfe! Interessant, dass auch dir der tatsächliche Fehler nicht aufgefallen ist, auch wenn du Recht hattest mit der Inbox. Der tatsächliche Fehler war, dass ich (oh mein Gott!) in der Funktionsdefinition $pass erwarte - aber $password an den IMAP Server sende.
Geschlagene 3 Stunden hab ich das nicht gesehen.. daraus lerne ich: In jeder noch so absurdesten Situation einfach mal error_reporting auf E_ALL stellen :)
Lieben Gruß,
David
P.S: An alle, die das Problem trotzdem haben - ich bin in meiner langen Recherche auf viele Lösungsvorschläge gestoßen. Schaut mal in der PHPINFO nach, ob PHP mit IMAP und IMAP SSL kompiliert wurde.
Hallo,
danke für deine Hilfe! Interessant, dass auch dir der tatsächliche Fehler nicht aufgefallen ist, auch wenn du Recht hattest mit der Inbox.
ja, DER Fehler fiel mir auf, weil ich den vor nicht allzulanger Zeit selbst gemacht habe.
Die Diskrepanz bei den Variablennamen habe ich tatsächlich nicht bemerkt.
Geschlagene 3 Stunden hab ich das nicht gesehen.. daraus lerne ich: In jeder noch so absurdesten Situation einfach mal error_reporting auf E_ALL stellen :)
Das setze ich in der Entwicklungsphase als selbstverständlich voraus!
P.S: An alle, die das Problem trotzdem haben - ich bin in meiner langen Recherche auf viele Lösungsvorschläge gestoßen. Schaut mal in der PHPINFO nach, ob PHP mit IMAP und IMAP SSL kompiliert wurde.
Interessant, das ist auch ein Punkt. Ich habe meine Versuche damals ohne SSL-Paranoia gemacht (war sowieso alles nur im eigenen LAN). Die SSL-Thematik hatte ich aus deinem Codeauszug auch schon rausinterpoiliert - so nach dem Motto: Mal angenommen, das ist richtig ...
So long,
Martin
Hi,
daraus lerne ich: In jeder noch so absurdesten Situation einfach mal error_reporting auf E_ALL stellen :)
Nein, während der Entwicklung *immer*.
Absurd wäre nur, dies nicht zu tun.
MfG ChrisB