>  기사  >  백엔드 개발  >  winwebmail은 간단한 웹메일 시스템을 구축합니다.

winwebmail은 간단한 웹메일 시스템을 구축합니다.

WBOY
WBOY원래의
2016-07-29 08:34:131501검색

웹 메일용 샘플 코드입니다. 기능은 그다지 강력하지 않지만 폴더 보기, 편지 보기, 답장 쓰기 등의 주요 기능은 비교적 완벽합니다. 그러나 프로그램에서는 첨부파일 해석 및 전송 문제를 고려하지 않습니다. (원본 기사는 여기). 웹메일 프로그래밍을 배우고 싶은 네티즌들의 참고용으로만 추천드립니다. 더 완전한 웹 메일을 보려면 여기로 이동하여 찾으십시오.
참고: http 인증 기능은 프로그램에서 사용되며 이 기능은 Apache 서버와 함께 사용해야 합니다.
---------------------------------- -- ----------------------------------
다음 코드를 index.php3, imapfuncs로 저장하세요. phl
$M_HOST = "localhost"; $M_MAILSERVER = "transit.fast.no";
그런 다음 imapfuncs.phl 파일에서 index.php3을 찾습니다. ------------------------------------- ---------------------
index.php3
/* $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"; /HEAD> <br><BODY bgcolor=#AAAAAA text=#000000 link=#440000 vlink=#440000 alink=#FF00FF> <br><H1 ALIGN=CENTER><?PHP echo "$M_SYSNAME"; ?></H1> <br><HR SIZE=1 NOSHADE> <br><P> <br><?PHP <br>if ($cmd == "삭제") { <br> m_delete($marked, $m); <br>m_list($m); <br>} <br>elseif ($cmd == "display") { <br>m_display($n, $m); >} <br>elseif ($cmd == "작성" || $cmd == "답장") { <br>m_compose($n, $m) <br>} <br>elseif ($cmd == "보내기") { <br>m_send($to, $subject, $body); <br>m_list($m) <br>} <br>else { <br>m_list($m); } <br>?> <br><P> <br><?PHP echo "사용자: $PHP_AUTH_USER" ?> ; <br></HTML> <br>------------------------- --- ----------------------------- <br>imapfuncs. phl <br><?PHP /* -*-C -*- */ <br>/* $Id: imapfuncs.phl,v 1.4 1999/04/14 12:12:32 borud Exp $ */ <br>/* 구성 가능한 매개변수 */ <br>$M_HOST = "localhost"; <br>$M_MAILSERVER = "transit.fast.no"; <br>$M_COLOR_ODD = "#CCCCCC" <br>$M_COLOR_EVEN = "# EEEEEE"; <br>$M_COLOR_HEAD = "#AAAAFF"; <br>$M_COLOR_BG = "#FFFFFF"; <br>/* 전역 */ <br>$M_PORT = 143; <br>$M_SERVICE = "imap" ; <br>$M_SYSNAME = "간단한 PHP3 IMAP 인터페이스 1.0"; <br>$M_MBOX = "{$M_HOST:$M_PORT/$M_SERVICE}" <br>$M_REALM = <br>$MBOX = false; <br>/* 함수 */ <br>함수 m_login ($mailbox = '') <br>{ <br>전역 $MBOX, $M_REALM <br>전역 $PHP_AUTH_USER, $PHP_AUTH_PW; if ($ MBOX) { <br>return true <br>} <br>if (! $PHP_AUTH_USER) { <br>m_reject($M_REALM) <br>} <br>$MBOX = @imap_open(m_mailbox_name( $mailbox) , $PHP_AUTH_USER, $PHP_AUTH_PW); <br>if (! $MBOX) { <br>m_reject($M_REALM) <br>} <br>return <br>} <br>function m_list( $mailbox = '') <br>{ <br>global $MBOX, $PHP_SELF; <br>global $M_COLOR_ODD, $M_COLOR_EVEN, $M_COLOR_HEAD, $M_COLOR_BG <br>/* 서버에 로그인하지 않은 경우 로그인하세요. / <br>if (! $MBOX) { <br>if (! m_login($mailbox)) { <br> false를 반환 <br>} <br>} <br>$num = imap_num_msg($MBOX); <br> echo "<FORM ACTION=$PHP_SELF TYPE=POST>n"; <br>echo "<CENTER><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=1 WIDTH=90%>n"; 🎜>echo "<TR ALIGN=LEFT BGCOLOR=$M_COLOR_HEAD>" <br>echo "<TH> </TH><TH>From</TH><TH>제목</TH> ;TH> 날짜</TH>"; <br>echo "</TR>n"; <br>for ($i=1; $i $head = imap_header($MBOX, $i, 50, 50, 0); <br>$from = $head->fetchfrom; <br>$subj = $head->fetchsubject; m_date_format($ 헤드->날짜) <br>$bgcolor = ($i%2 == 0)?$M_COLOR_ODD:$M_COLOR_EVEN; <br>echo "<TR BGCOLOR="$bgcolor">n" ; <br>echo " <TD><INPUT TYPE=CHECKBOX NAME=marked[] VALUE=$i></TD>n" <br>echo " <TD>$from</TD>" ; <br>echo "<TD><A href="$PHP_SELF?m=$mailbox&n=$i&cmd=display">$subj</A></TD>" <br>echo "< ;TD> $date</TD>n"; <br>echo "</TR>n"; <br>} <br>if ($num <= 0) { <br>echo "<TR> ;<TD ALIGN=CENTER COLSPAN=4 BGCOLOR=$M_COLOR_BG><BR>"; <br>echo "<FONT SIZE= 1 COLOR=#FF0000>사서함에 메시지가 없습니다</FONT>"; <br> echo "<BR><BR></TD></TR>n";<br>echo "<TR BGCOLOR=$M_COLOR_HEAD><TD COLSPAN=4>"; <br>echo "<입력 유형=이름 제출=cmd VALUE=삭제>"; <br>echo "<입력 유형=이름 제출=cmd VALUE=작성>"; <br>echo "<입력 유형=이름 제출=cmd VALUE=새로 고침>"; <br>echo "</TD></TR>n"; <br>echo "</TABLE></CENTER>n"; <br>echo "</FORM>n"; <br>참을 반환합니다. <br>} <br>함수 m_display($msgno, $mailbox = '') <br>{ <br>전역 $MBOX, $M_COLOR_HEAD, $M_COLOR_BG; <br>글로벌 $PHP_SELF; <br>if (! $MBOX) { <br>if (! m_login($mailbox)) { <br> false를 반환합니다. <br>} <br>} <br>$struc = imap_fetchstructure($MBOX, $msgno); <br>if (! $struc) { <br>false를 반환; <br>} <br>$head = imap_header($MBOX, $msgno, 50, 50, 0); <br>$from = $head->fromaddress; <br>$subj = $head->제목; <br>$date = $head->날짜; <br>$body = htmlentities(imap_body($MBOX, $msgno)); <br>echo "<CENTER>n"; <br>echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=10 WIDTH=100%>n"; <br>echo "<TR BGCOLOR=$M_COLOR_HEAD><TH>메시지 #$msgno: $from / $subj</TH></TR>n"; <br>echo "<TR BGCOLOR=$M_COLOR_BG><TD><PRE>n"; <br>echo "보낸 사람: $fromn"; <br>echo "제목: $subjn"; <br>echo "날짜: $daten"; <br>echo "<HR SIZE=2 NOSHADE>n"; <br>echo "$bodyn"; <br>echo "</PRE></TD></TR>n"; <br>echo "<TR BGCOLOR=$M_COLOR_HEAD><TD>"; <br>echo "<FORM ACTION=$PHP_SELF METHOD=POST>"; <br>echo "<입력 유형=숨겨진 이름=m VALUE=$mailbox>n"; <br>echo "<입력 유형=숨겨진 이름=n VALUE=$msgno>n"; <br>echo "<입력 유형=숨겨진 이름=표시됨[] VALUE=$msgno>n"; <br>echo "<입력 유형=제출 이름=cmd VALUE=뒤로>"; <br>echo "<입력 유형=제출 이름=cmd VALUE=답장>"; <br>echo "     <입력 유형=제출 이름=cmd VALUE=삭제>"; <br>echo "</TD></TR>n"; <br>echo "</TABLE>n"; <br>echo "</CENTER>n"; <br>참을 반환합니다. <br>} <br>함수 m_delete($msgno, $mailbox='') <br>{ <br>전역 $MBOX; <br>if (is_array($msgno)) { <br>while (list($dummy, $num) = Each($msgno)) { <br>imap_delete($MBOX, $num); <br>} <br>imap_expunge($MBOX); <br>} else { <br>false를 반환합니다. <br>} <br>true를 반환합니다. <br>} <br>함수 m_compose($msgno='', $mailbox='') <br>{ <br>전역 $MBOX, $M_COLOR_HEAD, $M_COLOR_BG; <br>전역 $PHP_SELF, $PHP_AUTH_USER, $M_MAILSERVER; <br>if ($msgno != '') { <br>$head = imap_header($MBOX, $msgno, 150, 150, 0); <br>$to = $head->fromaddress; <br>$subject = "답글: " . $head->주제; <br>$body = "$to 님이 쓴 글:n"; <br>$body .= ereg_replace("n","n>", "n" . imap_body($MBOX, $msgno)); <br>} else { <br>$to = ""; <br>$주제 = ""; <br>$body = ""; <br>} <br>echo "<CENTER>n"; <br>echo "<FORM METHOD=POST ACTION="$PHP_SELF">n"; <br>echo "<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0>n"; <br>echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>대상:</TD>"; <br>echo "<TD><INPUT TYPE=TEXT NAME=to value="$to" SIZE=50></TD></TR>n"; <br>echo "<TR bgcolor=$M_COLOR_HEAD><TD ALIGN=RIGHT>제목:</TD>"; <br>echo "<TD><INPUT TYPE=TEXT NAME=subject value="$subject" SIZE=50></TD></TR>n"; <br>echo "<TR bgcolor=$M_COLOR_BG><TD COLSPAN=2>"; <br>echo "<TEXTAREA COLS=76 ROWS=10 NAME=body WRAP=hard>$body</TEXTAREA>";  </p> <p> 以上就介绍了winwebmail 构建简单的Webmail系统, 包括了winwebmail방법은 内容, 希望对PHP教程有兴趣的朋友有所帮助。</p> <p> </p></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>성명:</span><div>본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.</div></div></div><div class="nphpSytBox"><span>이전 기사:<a class="dBlack" title="나를 집으로 데려다주세요 시골길 mysql 기반 포럼 (7)" href="http://m.php.cn/ko/faq/320996.html">나를 집으로 데려다주세요 시골길 mysql 기반 포럼 (7)</a></span><span>다음 기사:<a class="dBlack" title="나를 집으로 데려다주세요 시골길 mysql 기반 포럼 (7)" href="http://m.php.cn/ko/faq/320998.html">나를 집으로 데려다주세요 시골길 mysql 기반 포럼 (7)</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>관련 기사</h2><em><a href="http://m.php.cn/ko/article.html" class="bBlack"><i>더보기</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ko/faq/1.html" title="cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법" class="aBlack">cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1.html" title="cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법" class="aBlack">cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1.html" title="cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법" class="aBlack">cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1.html" title="cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법" class="aBlack">cURL을 사용하여 PHP에서 Get 및 Post 요청을 구현하는 방법</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/2.html" title="정규식의 모든 표현식 기호(요약)" class="aBlack">정규식의 모든 표현식 기호(요약)</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><div class="nphpFoot"><div class="nphpFootBg"><ul class="nphpFootMenu"><li><a href="http://m.php.cn/ko/"><b class="icon1"></b><p>집</p></a></li><li><a href="http://m.php.cn/ko/course.html"><b class="icon2"></b><p>강의</p></a></li><li><a href="http://m.php.cn/ko/wenda.html"><b class="icon4"></b><p>Q&A</p></a></li><li><a href="http://m.php.cn/ko/login"><b class="icon5"></b><p>나의</p></a></li><div class="clear"></div></ul></div></div><div class="nphpYouBox" style="display: none;"><div class="nphpYouBg"><div class="nphpYouTitle"><span onclick="$('.nphpYouBox').hide()"></span><a href="http://m.php.cn/ko/"></a><div class="clear"></div></div><ul class="nphpYouList"><li><a href="http://m.php.cn/ko/"><b class="icon1"></b><span>집</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/course.html"><b class="icon2"></b><span>강의</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/article.html"><b class="icon3"></b><span>기사</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/wenda.html"><b class="icon4"></b><span>Q&A</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/dic.html"><b class="icon6"></b><span>사전</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/course/type/99.html"><b class="icon7"></b><span>수동</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/xiazai/"><b class="icon8"></b><span>다운로드</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/faq/zt" title="주제"><b class="icon12"></b><span>주제</span><div class="clear"></div></a></li><div class="clear"></div></ul></div></div><div class="nphpDing" style="display: none;"><div class="nphpDinglogo"><a href="http://m.php.cn/ko/"></a></div><div class="nphpNavIn1"><div class="swiper-container nphpNavSwiper1"><div class="swiper-wrapper"><div class="swiper-slide"><a href="http://m.php.cn/ko/" >집</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/article.html" class="hover">기사</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/wenda.html" >Q&A</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/course.html" >강의</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/faq/zt" >주제</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/xiazai" >다운로드</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/game" >게임</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/dic.html" >사전</a></div><div class="clear"></div></div></div><div class="langadivs" ><a href="javascript:;" class="bg4 bglanguage"></a><div class="langadiv" ><a onclick="javascript:setlang('zh-cn');" class="language course-right-orders chooselan " href="javascript:;"><span>简体中文</span><span>(ZH-CN)</span></a><a onclick="javascript:setlang('en');" class="language course-right-orders chooselan " href="javascript:;"><span>English</span><span>(EN)</span></a><a onclick="javascript:setlang('zh-tw');" class="language course-right-orders chooselan " href="javascript:;"><span>繁体中文</span><span>(ZH-TW)</span></a><a onclick="javascript:setlang('ja');" class="language course-right-orders chooselan " href="javascript:;"><span>日本語</span><span>(JA)</span></a><a onclick="javascript:;" class="language course-right-orders chooselan chooselanguage" href="javascript:;"><span>한국어</span><span>(KO)</span></a><a onclick="javascript:setlang('ms');" class="language course-right-orders chooselan " href="javascript:;"><span>Melayu</span><span>(MS)</span></a><a onclick="javascript:setlang('fr');" class="language course-right-orders chooselan " href="javascript:;"><span>Français</span><span>(FR)</span></a><a onclick="javascript:setlang('de');" class="language course-right-orders chooselan " href="javascript:;"><span>Deutsch</span><span>(DE)</span></a></div></div><script> var swiper = new Swiper('.nphpNavSwiper1', { slidesPerView : 'auto', observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper }); </script></div></div><!--顶部导航 end--><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>