IMAP、POP3 および NNTP
- はじめに
- インストール/設定
- 定義済み定数
- IMAP 関数
- imap_8bit — 8 ビット文字列を quoted-printable 文字列に変換する
- imap_alerts — 発生した IMAP 警告メッセージを返す
- imap_append — 指定されたメールボックスに文字列メッセージを追加する
- imap_base64 — BASE64 でエンコードされたテキストをデコードする
- imap_binary — 8 ビット文字列を base64 文字列に変換する
- imap_body — メッセージ本文を読む
- imap_bodystruct — 指定したメッセージの指定した body セクションの構造を読み込む
- 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 — imap_list のエイリアス
- imap_listscan — 指定したテキストにマッチするメールボックスの一覧を返す
- imap_listsubscribed — imap_lsub のエイリアス
- imap_lsub — 購読しているすべてのメールボックスの一覧を得る
- imap_mail — e-mail メッセージを送信する
- imap_mail_compose — 指定したエンベロープおよびボディセクションに基づいて MIME メッセージを作成する
- imap_mail_copy — 指定されたメッセージをメールボックスにコピーする
- imap_mail_move — 指定されたメッセージをメールボックスに移動する
- imap_mailboxmsginfo — 現在のメールボックスに関する情報を得る
- imap_mime_header_decode — MIME ヘッダ要素をデコードする
- imap_msgno — 指定した UID のメッセージ番号を返す
- imap_mutf7_to_utf8 — 修正UTF-7文字列をUTF-8にデコードする
- imap_num_msg — 現在のメールボックスのメッセージ数を取得する
- imap_num_recent — 現在のメールボックスにある新規メッセージ数を取得する
- imap_open — メールボックスへの IMAP ストリームをオープンする
- imap_ping — IMAP ストリームがアクティブかどうかを調べる
- imap_qprint — quoted-printable 文字列を 8 ビット文字列に変換する
- imap_rename — imap_renamemailbox のエイリアス
- imap_renamemailbox — メールボックスの名前を変更する
- imap_reopen — 新規メールボックスへの IMAP ストリームを再度オープンする
- imap_rfc822_parse_adrlist — アドレス文字列を解釈します
- imap_rfc822_parse_headers — 文字列からメールヘッダを解釈する
- 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 クラス
+add a note
User Contributed Notes 1 note
Wil Barath ¶
14 years ago
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.]
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google