it seems that in new PHP versions, $ssl must be specified even if no ssl is used - I got it working for POP3 only after adding /notls (honour some post I found somewhere)
Klaus
IMAP, POP3 ve NNTP
- Giriş
- Yapılandırma/Kurulum
- Öntanımlı Sabitler
- IMAP İşlevleri
- imap_8bit — 8 bitlik bir dizgeyi 7 bitlik (quoted-printable) bir dizgeye dönüştürür
- imap_alerts — Oluşan tüm IMAP uyarı iletilerini döndürür
- imap_append — Belirtilen posta kutusuna bir dizge ileti ekler
- imap_base64 — Base64 kodlu dizgeyi 8 bitlik dizgeye dönüştürür
- imap_binary — 8 bitlik bir dizgeyi bir base64 dizgesine dönüştürür
- imap_body — İleti gövdesini okur
- imap_bodystruct — Belirtilen iletinin bir gövde bölümünün yapısını okur
- imap_check — Posta kutusu bilgilerini döndürür
- imap_clearflag_full — İletilerdeki imleri temizler
- imap_close — IMAP akımını kapatır
- imap_create — Takma Adı: imap_createmailbox
- imap_createmailbox — Yeni bir posta kutusu oluşturur
- imap_delete — Belirtilen iletiyi silindi olarak imler
- imap_deletemailbox — Bir posta kutusunu siler
- imap_errors — Oluşan tüm IMAP hatalarının iletilerini döndürür
- imap_expunge — Silindi imli tüm iletileri gerçekten siler
- imap_fetch_overview — Belirtilen iletinin başlıklarından belli bilgileri toplar
- imap_fetchbody — Belirtilen iletinin belli bir gövde bölümünü döndürür
- imap_fetchheader — Bir iletinin başlığını döndürür
- imap_fetchmime — Fetch MIME headers for a particular section of the message
- imap_fetchstructure — Belli bir iletinin yapısını okur
- imap_fetchtext — Takma Adı: imap_body
- imap_gc — IMAP önbelleğini temizler
- imap_get_quota — Belirtilen kullanıcının kota ayarlarını döndürür
- imap_get_quotaroot — Kullanıcının kendi kota ayarlarını döndürür
- imap_getacl — Belirtilen posta kutusunun erişim izinlerini döndürür
- imap_getmailboxes — Posta kutuları hakkında ayrıntılı bilgi döndürür
- imap_getsubscribed — Üyesi olunan tüm posta kutularını listeler
- imap_header — imap_headerinfo işlevinin takma adıdır
- imap_headerinfo — Belirtilen iletinin başlığını okur
- imap_headers — Bir posta kutusu içindeki tüm iletilerin başlıklarını döndürür
- imap_last_error — Geçerli sayfa isteği sırasında oluşan son IMAP hatasının açıklamasını döndürür
- imap_list — Posta kutularını listeler
- imap_listmailbox — imap_list işlevinin takma adıdır
- imap_listscan — Belirtilen metin ile eşleşen posta kutularını listeler
- imap_listsubscribed — imap_lsub işlevinin takma adıdır
- imap_lsub — Üyesi olunan tüm posta kutularını listeler
- imap_mail_compose — Zarfı ve gövdesi belirtilen MIME iletisini oluşturur
- imap_mail_copy — Belirtilen iletileri bir posta kutusuna kopyalar
- imap_mail_move — Belirtilen iletiyi bir posta kutusuna taşır
- imap_mail — Bir eposta iletisi gönderir
- imap_mailboxmsginfo — Posta kutusu hakkında bilgi döndürür
- imap_mime_header_decode — MIME başlık elemanlarının kodlamasını açar
- imap_msgno — Belirtilen eşsiz kimlik için ileti numarasını döndürür
- imap_num_msg — Posta kutusundaki ileti sayısını döndürür
- imap_num_recent — Posta kutusuna en son gelen ileti sayısını döndürür
- imap_open — Belirtilen posta kutusuna yeni bir IMAP akımı açar
- imap_ping — Belirtilen IMAP akımı hala etkin mi diye bakar
- imap_qprint — Bir 7 bitlik dizgeyi 8 bitlik dizgeye dönüştürür
- imap_rename — Takma Adı: imap_renamemailbox
- imap_renamemailbox — Posta kutusunun ismini değiştirir
- imap_reopen — IMAP akımını yeni posta kutusunda yeniden açar
- imap_rfc822_parse_adrlist — Bir adres dizgesini çözümler
- imap_rfc822_parse_headers — Bir dizgedeki eposta başlıklarını çözümler
- imap_rfc822_write_address — Posta kutusu, alan adı ve kişisel bilgi ile gerektiği gibi biçemlenmiş bir eposta adresi dönürür
- imap_savebody — Belirtilen iletinin gövdesini bir dosyaya kaydeder
- imap_scan — Takma Adı: imap_listscan
- imap_scanmailbox — imap_listscan işlevinin takma adıdır
- imap_search — Belirtilen kurala uyan iletileri bir dizi içinde döndürür
- imap_set_quota — Belirtilen posta kutusu için bir kota tanımlar
- imap_setacl — Belirtilen posta kutusu ile ilgili erişim izinlerini tanımlar
- imap_setflag_full — İletileri imler
- imap_sort — İletileri sıralar ve döndürür
- imap_status — Bir posta kutusunun durum bilgisini döndürür
- imap_subscribe — Bir posta kutusuna üyeliği başlatır
- imap_thread — Bir iletinin konu ağacını döndürür
- imap_timeout — IMAP zaman aşımını tanımlar veya döndürür
- imap_uid — Numarası belirtilen iletiyle ilgili eşsiz kimliği döndürür
- imap_undelete — Silindi diye imlenmiş bir iletinin imini kaldırır
- imap_unsubscribe — Bir posta kutusundan üyeliği sonlandırır
- imap_utf7_decode — Bir dizgenin karakter kodlamasını takviyeli UTF-7'den ISO-8859-1'e dönüştürür
- imap_utf7_encode — ISO-8859-1 kodlu bir dizgenin kodlamasını takviyeli UTF-7'ye dönüştürür
- imap_utf8 — MIME kodlu metni UTF-8'e dönüştürür
opto
16-Mar-2012 06:08
dev at bluehead dot com dot br
27-Nov-2011 11:13
Because I don't know regular expressions, I hacked the mail_parse_headers() to properly get the last line from the header string:
<?php
function mail_parse_headers($headers)
{
$headers=preg_replace('/\r\n\s+/m', '',$headers);
$headers=trim($headers)."\r\n"; /* a hack for the preg_match_all in the next line */
preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)?\r\n/m', $headers, $matches);
foreach ($matches[1] as $key =>$value) $result[$value]=$matches[2][$key];
return($result);
}
?>
Wil Barath
25-Feb-2010 12:54
For all the people coming here praying for:
1) a dead-easy way to read MIME attachments, or
2) a dead-easy way to access POP3 folders
Look no further.
<?php
function pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false)
{
$ssl=($ssl==false)?"/novalidate-cert":"";
return (imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass));
}
function pop3_stat($connection)
{
$check = imap_mailboxmsginfo($connection);
return ((array)$check);
}
function pop3_list($connection,$message="")
{
if ($message)
{
$range=$message;
} else {
$MC = imap_check($connection);
$range = "1:".$MC->Nmsgs;
}
$response = imap_fetch_overview($connection,$range);
foreach ($response as $msg) $result[$msg->msgno]=(array)$msg;
return $result;
}
function pop3_retr($connection,$message)
{
return(imap_fetchheader($connection,$message,FT_PREFETCHTEXT));
}
function pop3_dele($connection,$message)
{
return(imap_delete($connection,$message));
}
function mail_parse_headers($headers)
{
$headers=preg_replace('/\r\n\s+/m', '',$headers);
preg_match_all('/([^: ]+): (.+?(?:\r\n\s(?:.+?))*)?\r\n/m', $headers, $matches);
foreach ($matches[1] as $key =>$value) $result[$value]=$matches[2][$key];
return($result);
}
function mail_mime_to_array($imap,$mid,$parse_headers=false)
{
$mail = imap_fetchstructure($imap,$mid);
$mail = mail_get_parts($imap,$mid,$mail,0);
if ($parse_headers) $mail[0]["parsed"]=mail_parse_headers($mail[0]["data"]);
return($mail);
}
function mail_get_parts($imap,$mid,$part,$prefix)
{
$attachments=array();
$attachments[$prefix]=mail_decode_part($imap,$mid,$part,$prefix);
if (isset($part->parts)) // multipart
{
$prefix = ($prefix == "0")?"":"$prefix.";
foreach ($part->parts as $number=>$subpart)
$attachments=array_merge($attachments, mail_get_parts($imap,$mid,$subpart,$prefix.($number+1)));
}
return $attachments;
}
function mail_decode_part($connection,$message_number,$part,$prefix)
{
$attachment = array();
if($part->ifdparameters) {
foreach($part->dparameters as $object) {
$attachment[strtolower($object->attribute)]=$object->value;
if(strtolower($object->attribute) == 'filename') {
$attachment['is_attachment'] = true;
$attachment['filename'] = $object->value;
}
}
}
if($part->ifparameters) {
foreach($part->parameters as $object) {
$attachment[strtolower($object->attribute)]=$object->value;
if(strtolower($object->attribute) == 'name') {
$attachment['is_attachment'] = true;
$attachment['name'] = $object->value;
}
}
}
$attachment['data'] = imap_fetchbody($connection, $message_number, $prefix);
if($part->encoding == 3) { // 3 = BASE64
$attachment['data'] = base64_decode($attachment['data']);
}
elseif($part->encoding == 4) { // 4 = QUOTED-PRINTABLE
$attachment['data'] = quoted_printable_decode($attachment['data']);
}
return($attachment);
}
?>
[EDIT BY danbrown AT php DOT net: Contains a bugfix by "mn26826" on 09-JUN-2010, which fixed the erroneous reference to $imap as the parameter passed to imap_mailboxmsginfo() within the user function pop3_stat(). This was intended to be $connection.]
[EDIT BY visualmind AT php DOT net: Contains a bugfix by "elias-jobview" on 17-AUG-2010, which fixed the error in pop3_list function which didn't have: return $result]
[EDIT BY danbrown AT php DOT net: Contains a bugfix by "chrismeistre" on 09-SEP-2010, which fixed the erroneous reference to $mbox (should be $connection) in the pop3_list() function.]
