It seems that imap_savebody saves attachments with special characters above ascii 127 as quoted printable.
But if you need it in utf8, you may use the imap_qprint function after the attachment is saved:
<?php
$tFile = "/path/to/attachment";
$tFileOutput="";
$tFileHandle = fopen($tFile, "r");
//get the content of the file into a string
while(!feof($tFileHandle))
$tFileOutput = $tFileOutput . fgets($tFileHandle, 4096);
fclose ($tFileHandle);
$tFileHandle = fopen($tFile, "w");
//write the new 8Bit string to the file
fwrite($tFileHandle, imap_qprint($tFileOutput));
fclose ($tFileHandle);
?>
imap_savebody
(PHP 5 >= 5.1.3)
imap_savebody — Belirtilen iletinin gövdesini bir dosyaya kaydeder
Açıklama
bool imap_savebody
( resource
$imap_akımı
, mixed $dosya
, int $iletinum
[, string $parçanum = ""
[, int $seçenekler = 0
]] )Belirtilen ileti gövdesinin belirtilen parçasını bir dosyaya kaydeder.
Değiştirgeler
-
imap_akımı -
imap_open() işlevinden dönen bir IMAP akımı.
-
dosya -
Bir dizge olarak ileti parçasının kaydedileceği dosyanın yolu veya fopen() tarafından döndürülmüş geçerli bir dosya tanıtıcısı.
-
iletinum -
İleti numarası.
-
parçanum -
Parça numarası. IMAP4 belirtimine uygun olarak bir gövde parça listesi içindeki indisleri nokta ile ayrılmış tamsayılar biçeminde içeren bir dizge.
-
seçenekler -
Şunlardan gerekenleri içeren bir bit maskesidir:
-
FT_UID-iletinumbir eşsiz kimliktir. -
FT_PEEK- \Seen imi tanımlıysa bir daha tanımlanmaz. -
FT_INTERNAL- CRLF ile meşrulaştırılmamış olarak dizgeyi dahili biçemde döndürür.
-
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
janus at forty-seven dot info
20-Feb-2009 01:40
technocraze at gmail dot com
20-Dec-2007 12:38
I tried to use this function. But it seems it requires php_zip.dll to be load.. i got the php errror like below.
[20-Dec-2007 13:38:17] PHP Warning: PHP Startup: Unable to load dynamic library './php_zip.dll' - ./php_zip.dll: cannot open shared object file: No such file or directory in Unknown on line 0
[20-Dec-2007 13:38:17] PHP Fatal error: Call to undefined function imap_savebody() in /opt/oss/share/apache2/htdocs/blogtest/wp-inst/batch/pop3_mail.php on line 153
stupergenius at gmail dot com
31-Jul-2007 06:40
This function will save ALL information from the email if the part number is left out. Pretty handy for archiving.
