Archiv verlassen und diese Seite im Standarddesign anzeigen : Imap Problem
Hi,
ich möchte eig. nur ganz easy meine Mails abrufen,
aber i wie macht mir das nur probleme:
<?php
$host='{pop3.web.de/pop3:110}INBOX';
$user='meinemail@web.de';
$pass='mein passwort';
$MailboxPointer = imap_open($host, $user, $pass);
if($MailboxPointer)
{
echo"Verbindung zum Mail-Postfach hergestellt!<br><br>";
echo"Nachrichten im Posteingang:<br><br>";
$Headers = imap_headers($MailboxPointer);
$i=1;
if($Headers != false)
{
while(list($Schluessel, $Wert) = each($Headers))
{
echo$Wert."<br>";
$body = imap_body($MailboxPointer , $i);
echo $body ." <br>";
$i++;
}
}
imap_close($MailboxPointer);
}
else
{
echo"Keine Verbindung zum Mail-Postfach!";
}
?>
Bin ich irgendwie blöd:eek: ,
selbst auf php.net konnte ich nichts brauchbares finden was mein Problem behebt..
gru?
Jayjay
onemorenerd 10-10-2008, 12:24 $host='{pop3.web.de/pop3:110}INBOX';
// ...
$MailboxPointer = imap_open($host, ...);
Das passt nicht zusammen.
hi,
mhm?
ich hatte zum testen diesen code genommen
http://www.webmaster-resource.de/tricks/php/email-postfach-pop-imap-und-nntp-server-auslesen.php
Ok geht ich hatte eine falsche email,
aber auf meinem eigendlichen Server mit SSL läufts nicht da kommt immer diese Meldung :
Couldn't open stream {pop3.web.de/pop3:110}INBOX in /var/www/mail22.php on line 12
Keine Verbindung zum Mail-Postfach!
haste dir mal dei letzte Fehlermeldung vom Server anzeigen lassen?
haste mal das error_reporting hoch gedreht?
onemorenerd 10-10-2008, 14:36 imap_open() erwartet laut Manual sowas wie {localhost:110/pop3}INBOX.
Da wo du den Code her hast, wird {pop.1und1.de/pop3:110}INBOX benutzt. Das kann doch eigentlich schon nicht funktionieren und es wird auch nicht besser, wenn man 1und1 duch web ersetzt.
:rtfm: imap_errors natürlich schadet ein Blick auf imap_open auch nicht...
hi,
also ich hatte imape-open schon gelesen syr,
was müsste ich den für web schreiben:confused:
Später will ichs für ein paar Freunde so machen das die Daten aus der Db ausgelesen werden und diese die Mails nach dem einloggen sehen,
also von ganz unterschiedlichen Anbietern,
soweit ich das verstehe muss ich doch nur immer den "Pfad"
ändern also imap.web.de z.b. :confused:
und komischer weise funktioniert der code ja auf dem webspace jdeoch nicht auf meinem server mit ssl
also ich hatte imape-open schon gelesen syr, was müsste ich den für web schreiben Das steht doch im Manual! :teach:
Später will ichs für ein paar Freunde so machen das die Daten aus der Db ausgelesen werden und diese die Mails nach dem einloggen sehen, also von ganz unterschiedlichen Anbietern, soweit ich das verstehe muss ich doch nur immer den "Pfad" ändern also imap.web.de z.b. Den "Pfad" nennt man auch Host. Mehr dazu im Manual.
Vielleicht liest du das ganze noch einmal, bringst es in die korrekte Form und stellst dann ggf. noch mal eine konkrete Frage.
Gerade wenn man mit SEHR sensiblen Userdaten (auch noch anderer Leute) arbeitet, sollte man sich schon ein bisschen mit dem Thema befassen, anstatt nur mal schnell ins blaue zu programmieren. Dass das nicht klappt, hast du ja bereits gesehen.
ich habe mir das vorher schon 2 mal durchgelesen,
brauche ich jetzt die prot nummer von web.de?
und wo finde ich deren nummern :confused:
syr ich steht im moment auf dem schlauch aber ich weis ehrlich nicht was ihr meint:(
also mit $Mailbox = "{pop3.web.de:110/pop3}INBOX";
gehts bei mir jedoch,
nicht aufm ssl server muss ich da jetzt noch /imap/ssl
hinterdran machen?
Was ist ein "SSL-Server"?
Die Parameter beziehen sich in der Regel auf den ZIEL-Server.
Mhm ja deshalb,
auf jeden fall läuft dieses Script auf meinem webspace aber nicht auf dem Server, aber imap läuft auf dem server , da hatte ich schon die mails von localhost abgerufen,
hast du eine idee woran das liegen kann :confused:
onemorenerd 10-10-2008, 17:21 Schau dir mal die Ausgabe von phpinfo() an. Wenn im Configure Command kein --with-imap-ssl auftaucht, kann das mit /ssl nicht funktionieren.
hi,
ja ich habs nicht gefunden d.h. es ist nicht da,
aber liegt das jetzt auch daran das ich keine emails abrufen kann,
also mit dem normalen script?
Vielleicht bin ich ja auch nur nicht mitgekommen, aber da du die Frage nicht beantwortet hast:
Welcher Server ist der SSL-Server?
Und mit welchem Server willst du dich verbinden?
ich hab einen server mit ssl also https und am besten würde ich mich ja auch per ssl zu dem anbieter einloggen oder das wäre ja sicherer.
onemorenerd 10-10-2008, 19:46 Deine Fragen sind absolut unpräzise. Vielleicht hllft es dir, wenn wir die Sache noch mal ganz von vorn aufrollen.
Du hast irgendwoher Code kopiert. Der enthielt {pop3.1und1.de/pop3:110}INBOX. Da du dich mit web.de verbinden willst, hast du es geändert in {pop3.web.de/pop3:110}INBOX. Das hat nicht funktioniert und du hast diesen Thread eröffnet.
Der Fehler liegt in der Struktur/Reihenfolge. Richtig wäre {pop3.web.de:110/pop3}INBOX. Das hast du inzwischen wohl verstanden.
Jetzt möchtest du die Verbindung mit SSL aufbauen. Richtig wäre dafür {pop3.web.de:110/pop3/ssl}INBOX. Das funktioniert aber nur, wenn dein PHP (bzw. php_imap) mit --with-imap-ssl kompiliert wurde.
Falls du jetzt überhaupt noch ein Problem hast, formuliere es bitte mal so klar wie möglich und poste ggf. Auszüge deines aktuellen Codes.
<?php
$Mailbox = "{pop3.web.de:110/pop3}INBOX";
$Benutzername = "meinemail@web.de";
$Passwort = "mein pw";
$MailboxPointer = imap_open($Mailbox, $Benutzername, $Passwort);
if($MailboxPointer)
{
echo"Verbindung zum Mail-Postfach hergestellt!<br><br>";
echo"Nachrichten im Posteingang:<br><br>";
$Headers = imap_headers($MailboxPointer);
if($Headers != false)
{
while(list($Schluessel, $Wert) = each($Headers))
{
echo$Wert."<br>";
}
}
imap_close($MailboxPointer);
}
else
{
echo"Keine Verbindung zum Mail-Postfach!";
}
?>
Also,
dieser Code funktionier auf meinem Webspace,
jedoch auf meinem Server funktioniert er nicht,
da auf meinem auch ein Mailserver ist konnte ich mit dem Code intern Mails über localhost abrufen,
da mein webserver über ssl verschlüsselt ist bzw der zugriff aus dem browser frage ich mich ob es daran liegt das das scipt hier keine externen mails abrufen kann :confused:
ich hoffe das warverständlich:(
onemorenerd 10-10-2008, 20:31 Naja, langsam wirds heller ...
Auf dem Webspace funktioniert es. Prima, dann vergessen wir den mal völlig und beschäftigen uns nur noch mit deinem Server.
Du rufst den obigen Code so auf: https://localhost/mailscript.php, also via SSL.
Wenn der Code nun von sich aus irgendwelche Verbindungen aufbaut, mit imap_open() oder sonstwie, sind diese Verbindungen nicht automatisch auch SSL-gesichert.
War es das, was du wissen wolltest?
syr nicht ganz;)
das problem ist mein script läuft nicht auf dem eig. server ,
und ich dachte das dies vllt an der ssl verbindung liegt von meinem server,
da stimmt i was auf meinem server nicht wie kann ich die fehler mit http://www.php.net/manual/de/function.imap-errors.php
also wie kann ich die fehler ausgeben lassen?
echo imap_errors(); gibt mir nur array aus
:confused: :confused:
also irgendwas muss an den server einstellungen anderst sein als an denen vom webspace deshalb würde ich gerne die errors auslesen weis aber nicht wie :confused:
Original geschrieben von Jayjay
echo imap_errors(); gibt mir nur array aus
:confused: :confused:
Dann überleg mal scharf, wie man ein Array ausgibt.
$array =imap_errors();
echo $array[0]; :confused:
syr aber ich weis jetzt echt nicht genau wie du das meinst :( :( :(
foreach(imap_errors() as $error){
echo $error."<br />";
}
...und wenn die Keys einen sinnvollen Namen haben, kannst du den jeweiligen Key natürlich noch vor der Fehlermeldung ausgeben lassen.
ich werf mal print_r oder var_dump für jede Art von Testausgaben in den Raum. Noch nie gedebuggt?
Hi,
ok mit dem Fehlerreport habe ich herausbekommen das das pw nicht gestimmt hat, gut jetzt funktioniert es war aber i wie komisch :(
Naja jetzt wich dies ja für alle meine KUmpels mit unterschiedlichen email anbietern machen, dafür habe ich eine db mit
pop3/imap: z.b. pop3.web.de
und dem port entweder 110 oder 143 .
und das wird dann so ausgeben als pop3.web.de:110
stimmt das?
ok mit dem Fehlerreport habe ich herausbekommen das das pw nicht gestimmt hat, gut jetzt funktioniert es war aber i wie komisch Ich hoffe du rennst schon weg! :teach: :motz: *steine hinterher schmeiß* Nichtmal ne Entschuldigung. :(
kA ich hab dann en eneues pw angefordert ich ferstehts ja selbst nicht auf dem einen server hats ja funkt:confused: :confused: :confused:
aber wie muss ich das allgemein machen das man dieses mailbarufen von vielen anbietern machen kann?
es tut mir ja leid aber warum ist es auf dem alten webspace gelaufen?
vllt hab ichs vor lauter ausprobieren abgeändert kA:(
Kannst du mir bitte noch helfen?
Ich möchte dies jetzt allgemein machen.
Dann machs doch einfach. Du hast doch schon den Ansatz, aber kein Problem. Ich habe bereits gesagt, dass ICH es nicht gut finde, dass DU (mit deiner Erfahrung) mit fremden Zugangsdaten rumfummelst...
warum mit fremdenzugangsdaten rum fummelst?
also
das kommt bei meiner eigenen adresse von web:
Unexpected tagged response: +OK WEB.DE POP3-Server
[CLOSED] IMAP connection broken (server response)
Keine Verbindung zum Mail-Postfach!
$select = mysql_query("SELECT * FROM email WHERE User = '".$em."'");
while($se = mysql_fetch_array($select)) {
$host=''.$se['name'].''; //Host to connect
$user=''.$se['em'].'';
$pass='base64_decode('.$se['pw'].')';
}
$MailboxPointer = imap_open($host, $user, $pass);
achso $se['name']={pop3.web.de:110/novalidate-cert}INBOX
|
-
- |