ホームページ  >  記事  >  php教程  >  シンプルな Web メール システムを構築する

シンプルな Web メール システムを構築する

WBOY
WBOYオリジナル
2016-06-13 12:38:521058ブラウズ

これは Web メールのサンプル コードです。機能はそれほど強力ではありませんが、主な機能はフォルダーの表示、メールの返信、メールの作成などです。ただし、このプログラムでは、添付ファイルの解釈と送信の問題は考慮されていません。 (元記事はこちら)。これは、Web メール プログラミングについて学びたいネチズンの参考としてのみ推奨されます。より完全な Web メールについては、ここにアクセスして見つけてください。
注意: このプログラムでは http 認証機能が使用されており、この機能は Apache サーバーで使用する必要があります。




---------------------------------- - ---------------------------------------
以下を変更しますコードは、index.php3、imapfuncs.phl
$M_HOST = "localhost"; $M_MAILSERVER = "transit.fast.no"
として保存され、imapfuncs.phl ファイル内のindex.php3 を参照します。
----------------------------------------------- -- ----------------------------------
index.php3

< ?PHP
/* $Id:index.php3,v 1.3 1999/04/14 12:12:32 borud Exp $ */

/* 作成した IMAP ライブラリ関数をロードします */
include("imapfuncs.phl");

m_login($m);


<?PHP echo "$M_SYSNAME"; ?>



🎜>< ;P>
if ($cmd == "削除") {
m_list($m); >}

elseif ($cmd == "表示") {
m_display($n, $m)
}

elseif ($cmd == "作成") || $ cmd == "返信") {
m_compose($n, $m)

elseif ($cmd == "送信") {
m_send($) to, $ subject, $body);
m_list($m);

else {
m_list($m);
? 🎜>





本文>






------ -------------------------------------------------- -- --------
imapfuncs.phl


/* $Id: imapfuncs. phl、v 1.4 1999/04/14 12:12:32 borud Exp $ */

/* 設定可能なパラメータ */


$M_HOST = "localhost"; $M_MAILSERVER = "transit.fast.no";

$M_COLOR_ODD = "#CCCCCC";
$M_COLOR_HEAD = "#AAAAFF"; $M_COLOR_BG = "#FFFFFF";


/* グローバル */
$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; $MBOX ) {
return true;
}

if (! $PHP_AUTH_USER) {
m_reject($M_REALM)
}

$MBOX = @ imap_open( m_mailbox_name($mailbox), $PHP_AUTH_USER, $PHP_AUTH_PW);

if (! $MBOX) {
m_reject($M_REALM)

return true;
}


関数 m_list($mailbox = '')
{
グローバル $MBOX, $PHP_SELF;
グローバル $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"; ;CENTER> ;n";

echo "

";
echo " ";
エコー "n" ;

for ($i=1; $i $head = imap_header($MBOX, $i, 50, 50, 0); 🎜>
$from = $head->fetchfrom;
$subj = $head->fetchsubject;
$date = m_date_format($head->date); $bgcolor = ($i%2 == 0)?$M_COLOR_ODD:$M_COLOR_EVEN;

echo "n"; < INPUT TYPE=CHECKBOX NAME=marked[] VALUE=$i>n";
echo " ";
echo "";
echo "n ";
echo "n";
}

if ($num <= 0) {
echo "}

echo "n";

echo "
件名 日付
$from < A href="$PHP_SELF?m=$mailbox&n=$i&cmd=display">$subj$date

";
echo "メールボックスにメッセージがありません";
";
echo "";
echo "";
echo "";
エコー "
n";
エコー "
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->subject;
$date = $head->date;
$body = htmlentities(imap_body($MBOX, $msgno));

エコー "
n";
echo "n";
echo "n";
echo "n";
エコー "n";
エコー "
メッセージ #$msgno: $from / $subj
n"; <br>エコー "From: $fromn"; <br>エコー "件名: $subjn"; <br>エコー "日付: $daten"; <br>エコー "<hr size="2" noshade>n"; <br>「$bodyn」をエコー; <br>エコー "
";

echo "
";
echo "n";
echo "n";
echo "n";
echo "";
echo "";
echo " ";

エコー "
n";
エコー "
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 {
return false;
}

true を返します。
}

function m_compose ($msgno='', $mailbox='')
{
global $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 "n";
echo "n";
echo "";
echo "n";

echo "";
echo "n";

echo "
To:
件名:
";
echo ""; 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。