これは Web メールのサンプル コードです。機能はそれほど強力ではありませんが、主な機能はフォルダーの表示、メールの返信、メールの作成などです。ただし、このプログラムでは、添付ファイルの解釈と送信の問題は考慮されていません。 (元の記事はこちら)。これは、Web メールのプログラミングを理解したいネチズン向けの参考資料としてのみ推奨されます。より完全な Web メールについては、ここにアクセスして見つけてください。
注意: このプログラムでは http 認証機能が使用されており、この機能は Apache サーバーで使用する必要があります。
------------------------------------------------- -----------------------------
以下のコードをindex.php3、imapfuncs.phlとして保存します
imapfuncs.phlを設定します $ M_HOST = "localhost"; $M_MAILSERVER = "transit.fast.no";
次に、ファイル内のindex.php3を参照します。 ------------------------------------------------ ---- -------
index.php3
/* $Id:index.php3,v 1.3 1999/04/14 12:12:32 borud Exp $ */
/* IMAP ライブラリをロードします私たちが書いた関数 */
m_login($m);
if ($cmd == "削除") { m_delete($marked, $m);
m_list($m);
}
elseif ($cmd == "表示") {
m_display($n, $m)
}
elseif ($cmd == "作成" || $cmd == "返信") {
m_compose($n, $m);
}
elseif ($cmd == "送信") {
m_send($to, $subject,
m_list($ m);
else {
m_list($m);
?>
---------------------------- -------- ---------------------------------------- --
imapfuncs.phl
< ;?PHP /* -*-C++-*- */
/* $Id: imapfuncs.phl,v 1.4 1999/04/14 12:12:32 borud Exp $ */
/* 設定可能なパラメータ */
$ M_HOST = "ローカルホスト";
$M_COLOR_ODD = "#EEEEEE";
$M_COLOR_BG = " #FFFFFF";
/* グローバル */
$M_PORT = 143;
$M_SERVICE = "imap";
$M_SYSNAME = "シンプルな PHP3 IMAP インターフェイス 1.0";
$M_MBOX = "{ $M_HOST:$M_PORT/$M_SERVICE }";
$M_REALM = "IMAP インターフェイス";
$MBOX = false;
/* 関数 */
function m_login ($mailbox = '')
{
global $MBOX, $ M_REALM;
global $PHP_AUTH_USER, $ PHP_AUTH_PW;
if ($MBOX) {
return true;
if (! $PHP_AUTH_USER) {
m_reject($M_REALM)
}
$MBOX = @imap_open(m_mailbox_name($mailbox), $PHP_AUTH_ PW );
if (! $MBOX) {
m_reject($M_REALM);
return true;
function m_list($mailbox = '')
{
global $M_COLOR_ODD; $M_COLOR_EVEN, $M_COLOR_HEAD, $M_COLOR_BG;
/* サーバーにログインしていない場合は、ログインします */
if (! $MBOX) {
if (! m_login($mailbox)) {
return false; $num = imap_num_msg($MBOX);
echo "
n";
true を返します。
}
関数 m_display($msgno, $mailbox = '')
{
グローバル $MBOX, $M_COLOR_HEAD, $M_COLOR_BG;
グローバル $PHP_SELF;
if (! $MBOX) {
if (! m_login($mailbox)) {
return false;
}
}
$struc = imap_fetchstruct($MBOX, $msgno);
if (! $struc) {
return false;
}
$head = imap_header($MBOX, $msgno, 50, 50, 0);
$from = $head->fromaddress;
$subj = $head->件名;
$date = $head->date;
$body = htmlentities(imap_body($MBOX, $msgno));
echo "
n";
echo "n";
echo "メッセージ #$msgno: $from / $subj |
n";
echo "n"; <br>echo "From: $fromn"; <br>echo "件名: $subjn"; <br>echo "日付: $daten"; <br>echo "<hr size="2" noshade>n"; <br>「$bodyn」をエコー; <br>echo " |
n";
echo ""; echo " |
n";
echo "
n";
echo "n";
true を返します。
}
function m_delete ($msgno, $mailbox='')
{
global $MBOX;
if (is_array($msgno)) {
while (list($dummy, $num) = each($msgno)) {
imap_delete($MBOX, $num);
}
imap_expunge($MBOX);
} else {
false を返す;
}
true を返します。
}
関数 m_compose ($msgno='', $mailbox='')
{
グローバル $MBOX, $M_COLOR_HEAD, $M_COLOR_BG;
グローバル $PHP_SELF、$PHP_AUTH_USER、$M_MAILSERVER;
if ($msgno != '') {
$head = imap_header($MBOX, $msgno, 150, 150, 0);
$to = $head->fromaddress;
$subject = "Re: " . $head->件名;
$body = "$to 書き込み:n";
$body .= ereg_replace("n","n>", "n" . imap_body($MBOX, $msgno));
} else {
$to = "";
$subject = "";
$body = "";
}
echo "
n";
echo "