Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Imap Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Imap Problem


 
Jayjay
10-10-2008, 11:58 
 
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.

 
Jayjay
10-10-2008, 12:41 
 
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!

 
TobiaZ
10-10-2008, 14:09 
 
haste dir mal dei letzte Fehlermeldung vom Server anzeigen lassen?
haste mal das error_reporting hoch gedreht?

 
Jayjay
10-10-2008, 14:33 
 
syr wie mach ich das?

 
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.

 
TobiaZ
10-10-2008, 15:19 
 
:rtfm: imap_errors natürlich schadet ein Blick auf imap_open auch nicht...

 
Jayjay
10-10-2008, 16:02 
 
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

 
TobiaZ
10-10-2008, 16:13 
 
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.

 
Jayjay
10-10-2008, 16:17 
 
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:(

 
Jayjay
10-10-2008, 16:21 
 
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?

 
TobiaZ
10-10-2008, 16:24 
 
Was ist ein "SSL-Server"?

Die Parameter beziehen sich in der Regel auf den ZIEL-Server.

 
Jayjay
10-10-2008, 17:07 
 
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.

 
Jayjay
10-10-2008, 19:27 
 
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?

 
TobiaZ
10-10-2008, 19:40 
 
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?

 
Jayjay
10-10-2008, 19:42 
 
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.

 
TobiaZ
10-10-2008, 19:59 
 
:grin:

 
Jayjay
10-10-2008, 20:17 
 
<?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?

 
Jayjay
10-10-2008, 21:40 
 
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:

 
Jayjay
10-10-2008, 22:12 
 
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:

 
unset
10-10-2008, 22:18 
 
Original geschrieben von Jayjay

echo imap_errors(); gibt mir nur array aus
:confused: :confused:
Dann überleg mal scharf, wie man ein Array ausgibt.

 
Jayjay
10-10-2008, 22:27 
 
$array =imap_errors();

echo $array[0]; :confused:

syr aber ich weis jetzt echt nicht genau wie du das meinst :( :( :(

 
lennart
10-10-2008, 22:46 
 
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.

 
TobiaZ
11-10-2008, 12:15 
 
ich werf mal print_r oder var_dump für jede Art von Testausgaben in den Raum. Noch nie gedebuggt?

 
Jayjay
11-10-2008, 20:27 
 
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?

 
TobiaZ
11-10-2008, 20:31 
 
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. :(

 
Jayjay
11-10-2008, 20:32 
 
kA ich hab dann en eneues pw angefordert ich ferstehts ja selbst nicht auf dem einen server hats ja funkt:confused: :confused: :confused:

 
Jayjay
11-10-2008, 20:33 
 
aber wie muss ich das allgemein machen das man dieses mailbarufen von vielen anbietern machen kann?

 
TobiaZ
11-10-2008, 20:45 
 
aha.

 
Jayjay
11-10-2008, 20:50 
 
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.

 
TobiaZ
11-10-2008, 20:57 
 
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...

 
Jayjay
11-10-2008, 21:18 
 
warum mit fremdenzugangsdaten rum fummelst?

 
Jayjay
11-10-2008, 21:54 
 
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

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:21 Uhr.