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.]
PHP.mk документација
IMAP
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
book.imap.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
book.imap.php
IMAP
Референца за `book.imap.php` со подобрена типографија и навигација.
IMAP, POP3 и NNTP
Вовед
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава
Овој екстензија е DEPRECATED and UNBUNDLED од PHP 8.4.0.
Овие функции ви овозможуваат да работите со IMAP протоколот, како и со NNTP, POP3 и локалните методи за пристап до поштенско сандаче.
Внимавајте, сепак, дека некои IMAP функции нема да работат правилно со POP протоколот.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава
IMAP екстензијата не е thread-safe; не треба да се користи со ZTS билдови.
- Installing/Configuring
- Претходно дефинирани константи
- IMAP функции
- imap_8bit — Претвори 8-битен стринг во quoted-printable стринг
- imap_alerts — Враќа сите IMAP пораки за предупредување што се случиле
- imap_append — Додај стринг порака во одредено поштенско сандаче
- imap_base64 — Декодирај BASE64 кодиран текст
- imap_binary — Претвори 8-битен стринг во base64 стринг
- imap_body — Прочитај го телото на пораката
- imap_bodystruct — Прочитај ја структурата на одреден дел од телото на одредена порака
- imap_check — Провери го тековното поштенско сандаче
- imap_clearflag_full — Бриши знаменца на пораки
- imap_close — Затвори IMAP стрим
- imap_create — Алузија на imap_createmailbox
- imap_createmailbox — Креирај ново поштенско сандаче
- imap_delete — Означи порака за бришење од тековното поштенско сандаче
- imap_deletemailbox — Избриши поштенско сандаче
- imap_errors — Враќа сите IMAP грешки што се случиле
- imap_expunge — Избриши ги сите пораки означени за бришење
- imap_fetch_overview — Прочитај преглед на информациите во заглавјата на дадената порака
- imap_fetchbody — Преземи посебен дел од телото на пораката
- imap_fetchheader — Враќа заглавја за порака
- imap_fetchmime — Преземи MIME заглавја за посебен дел од пораката
- imap_fetchstructure — Прочитај ја структурата на посебна порака
- imap_fetchtext — Псевдоним на imap_body
- imap_gc — Исчисти го IMAP кешот
- imap_get_quota — Враќа поставки за нивото на квота и статистика за користење по поштенско сандаче
- imap_get_quotaroot — Враќа поставки за квота по корисник
- imap_getacl — Добива ACL за дадено поштенско сандаче
- imap_getmailboxes — Прочитај ја листата на поштенски сандачиња, враќајќи детални информации за секое од нив
- imap_getsubscribed — Листирај ги претплатените поштенски сандачиња
- imap_header — Псевдоним на imap_headerinfo
- imap_headerinfo — Прочитај го заглавјето на пораката
- imap_headers — Враќа заглавја за сите пораки во поштенско сандаче
- imap_is_open — Провери дали IMAP протокот е сè уште валиден
- imap_last_error — Ги добива последната IMAP грешка што се случила за време на овој барање на страница
- imap_list — Прочитај ја листата на поштенски сандачиња
- imap_listmailbox — Alias of imap_list
- imap_listscan — Returns the list of mailboxes that matches the given text
- imap_listsubscribed — Alias of imap_lsub
- imap_lsub — Листирај ги претплатените поштенски сандачиња
- imap_mail — Alias of imap_lsub
- imap_mail_compose — Send an email message
- imap_mail_copy — Create a MIME message based on given envelope and body sections
- imap_mail_move — Copy specified messages to a mailbox
- imap_mailboxmsginfo — Move specified messages to a mailbox
- imap_mime_header_decode — Get information about the current mailbox
- imap_msgno — Decode MIME header elements
- imap_mutf7_to_utf8 — Gets the message sequence number for the given UID
- imap_num_msg — Decode a modified UTF-7 string to UTF-8
- imap_num_recent — Gets the number of messages in the current mailbox
- imap_open — Gets the number of recent messages in current mailbox
- imap_ping — Open an IMAP stream to a mailbox
- imap_qprint — Претвори го quoted-printable стринг во 8-битен стринг
- imap_rename — Check if the IMAP stream is still active
- imap_renamemailbox — Alias of imap_renamemailbox
- imap_reopen — Rename an old mailbox to new mailbox
- imap_rfc822_parse_adrlist — Reopen IMAP stream to new mailbox
- imap_rfc822_parse_headers — Parses an address string
- imap_rfc822_write_address — Враќа правилно форматирана адреса на е-пошта дадена од поштенското сандаче, домаќинот и личните информации
- imap_savebody — Зачувај специфичен дел од телото во датотека
- imap_scan — Алијас на imap_listscan
- imap_scanmailbox — Алијас на imap_listscan
- imap_search — Оваа функција враќа низа од пораки што одговараат на дадените критериуми за пребарување
- imap_set_quota — Поставува квота за дадено поштенско сандаче
- imap_setacl — Поставува ACL за дадено поштенско сандаче
- imap_setflag_full — Поставува знаменца на пораките
- imap_sort — Презема и сортира пораки
- imap_status — Враќа информации за статусот на поштенското сандаче
- imap_subscribe — Претплатете се на поштенско сандаче
- imap_thread — Враќа дрво на поврзана порака
- imap_timeout — Постави или преземи imap тајмаут
- imap_uid — Оваа функција враќа UID за дадениот број на секвенца на пораката
- imap_undelete — Отмаркирај ја пораката која е означена како избришана
- imap_unsubscribe — Отпишете се од поштенско сандаче
- imap_utf7_decode — Декодира модифициран UTF-7 кодиран стринг
- imap_utf7_encode — Конвертира ISO-8859-1 стринг во модифициран UTF-7 текст
- imap_utf8 — Конвертира MIME-кодиран текст во UTF-8
- imap_utf8_to_mutf7 — Кодира UTF-8 стринг во модифициран UTF-7
- IMAP\Connection — Класата IMAP\Connection
Белешки од корисници 1 белешка
Вил Барат ¶
пред 16 години