Kör du på en windowsmaskin måste du lägga till i mode att du sparar binärt:
$fp2 = fopen(($j-1).".jpg","wb");
3 svar · 217 visningar · startad av Boogaloo
Har gjort ett skript som kopplar upp mot pop-servern och laddar ner alla mailen.
Problemet är att jag vill spara attachments (bilder).
Detta går tokigt bra under IIS men under Apache så blir det något fel med Base64 konverteringen eller sparningen av filen.
Så här sparas den om man kör php via IIS:

Och såhär med Apache:

Här har ni koden:
<?
$msgno = $_GET['msg'];
$img = $_GET['img'];
$ServerName = "{mail.blablabla.com/pop3:110}INBOX";
$UserName = "KONTO";
$PassWord = "LÖSEN";
$mbox = imap_open($ServerName, $UserName,$PassWord) or die("död!");
$fileContent = imap_fetchbody($mbox,$msgno,$img);
$fileContent = imap_base64($fileContent);
$fp2 = fopen(($j-1).".jpg","w");
fwrite($fp2,$fileContent);
fclose($fp2);
echo($fileContent);
?>
Intressant är att jag kör en echo på $fileContent i slutet och denna visa upp bilden galant i browsern. Därav tror jag att det är något trixigt med att spara filen.
Är det någon som har någon som helst erfarenhet av detta problem?
Kör du på en windowsmaskin måste du lägga till i mode att du sparar binärt:
$fp2 = fopen(($j-1).".jpg","wb");
Oj Oj Oj,
Tackar så otroligt mycket. Det var precis det som behövdes.
Då verkar det som att om man kör fopen genom IISen så förstår den att det är binärt eller något.
Tja skulle vara fint om du ville visa hur du gör för att ta emot texten i ett mail när det finns en bifogad fil.
Jobbar just nu hårt med imap men har stött på ett problem som jag inte funnit svar på ännu.
Jag kan ta emot texten om det bara finns plain text i själva meddelandet, men om personen skickar attachment + alternative (plain, html) så blir allt knas.
Har du en fin lösning?
Tack på förhand //Savve