仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1393|回复: 20
打印 上一主题 下一主题

[学习教程] PHP教程之线收邮件

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:04:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怎么培养啊 别光说不练啊,好 ,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的linux下开发。   

一个可以在线收邮件的东东

不克不及收MINE的函件。可以思索利用BASE64解码甚么东东来完成。详细我忘了。
方才写出来的。还不是很成熟。
//input.html
////////////////////////////////////////////////////
<html>
<head>
<title>pop mail form</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="check.php">
<table width="78%">
<tr>
<td width="49%" height="17">请输出你的电子邮件账号信息:</td>
<td width="51%" height="17"> </td>
</tr>
<tr>
<td width="49%">
<div align="right">用户名:</div>
</td>
<td width="51%">
<input type="text" name="username">
</td>
</tr>
<tr>
<td width="49%">
<div align="right">暗码:</div>
</td>
<td width="51%">
<input type="password" name="passwd">
</td>
</tr>
<tr>
<td width="49%">
<div align="right">主机名:</div>
</td>
<td width="51%">
<input type="text" name="pophost">
</td>
</tr>
<tr>
<td width="49%">
<div align="center">
<input type="submit" name="check" value="肯定">
</div>
</td>
<td width="51%">
<div align="center">
<input type="reset" name="Reset" value="重来">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
//check.php
/////////////////////////////////////////
<?
include ("./mail.php");
if ($check){
$pop3 = pop3_open("$pophost", "110");
if (!$pop3) {
printf("[ERROR]未能与主机准确毗连!<BR>\n");
return 0;
}
if (!pop3_user($pop3, "$username")) {
printf("[ERROR] 毛病的用户名?lt;BR>\n");
return 0;
}
if (!pop3_pass($pop3, "$passwd")) {
printf("[ERROR] 暗码毛病!<BR>\n");
return 0;
}
$articles = pop3_list($pop3);
if (!$articles) {
printf("[ERROR] 列表毛病!<BR>\n");
return 0;
}
print "<table width=\"100%\" border=1>";
print "<tr><td>形态</td><td>发信人</td><td>主题</td></tr>";
for ($i = 1; $i < $articles ["count"] + 1; $i++)
{
$data = pop3_retr($pop3,$i);
if (substr($data[9],8,2)=="RO") $read="已读";
else $read="未读";
print "<tr><td>$read</td><td>$data[5]</td><td><a
href=\"readmail.php?username=$username&passwd=$passwd&pophost=$pophost&no=$i\">$data[8]</a><
/td></tr>";
}
print "</table>";
}
?>
//mail.php
/////////////////////////////////////////
<?
function pop3_open($server, $port)
{
global $POP3_GLOBAL_STATUS;
$pop3 = fsockopen($server, $port);
if ($pop3 <= 0) return 0;
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
return $pop3;
}
function pop3_user($pop3, $user)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "USER $user\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
return 1;
}
function pop3_pass($pop3, $pass)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "PASS $pass\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
return 1;
}
function pop3_stat($pop3)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "STAT\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
if (!eregi("+OK (.*) (.*)", $line, $regs))
return 0;
return $regs[1];
}
function pop3_list($pop3)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "LIST\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
$i = 0;
while (substr($line = fgets($pop3, 1024), 0, 1) <> ".")
{
$articles[$i] = $line;
$i++;
}
$articles["count"] = $i;
return $articles;
}
function pop3_retr($pop3, $nr)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "RETR $nr\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
while (substr($line = fgets($pop3, 1024), 0, 1) <> ".")
{
$data[$i] = $line;
$i++;
}
$data["count"] = $i;
return $data;
}
function pop3_dele($pop3, $nr)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "DELE $nr\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
return 1;
}
function pop3_quit($pop3)
{
global $POP3_GLOBAL_STATUS;
fputs($pop3, "QUIT\r\n");
$line = fgets($pop3, 1024);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] = substr($line, 0, 1);
$POP3_GLOBAL_STATUS[$pop3]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($POP3_GLOBAL_STATUS[$pop3]["LASTRESULT"] <> "+") return 0;
return 1;
}
function smtp_open($server, $port)
{
global $SMTP_GLOBAL_STATUS;
$smtp = fsockopen($server, $port);
if ($smtp < 0) return 0;
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0;
return $smtp;
}

function smtp_helo($smtp)
{
global $SMTP_GLOBAL_STATUS;
/* 'localhost' always works [Unk] */
fputs($smtp, "helo localhost\r\n");
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0;
return 1; }
function smtp_ehlo($smtp)
{
global $SMTP_GLOBAL_STATUS;
/* Well, let's use "helo" for now.. Until we need the
extra func's [Unk]
*/
fputs($smtp, "helo localhost\r\n");
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0;
return 1;
}

function smtp_mail_from($smtp, $from)
{
global $SMTP_GLOBAL_STATUS;
fputs($smtp, "MAIL FROM: <$from>\r\n");
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0;
return 1;
}
function smtp_rcpt_to($smtp, $to)
{
global $SMTP_GLOBAL_STATUS;
fputs($smtp, "RCPT TO: <$to>\r\n");
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0;

return 1;
}
function smtp_data($smtp, $subject, $data)
{
global $SMTP_GLOBAL_STATUS;
fputs($smtp, "DATA\r\n");
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "3") return 0;
fputs($smtp, "Mime-Version: 1.0\r\n");
fputs($smtp, "Subject: $subject\r\n");
fputs($smtp, "$data\r\n\r\n");
fputs($smtp, ".\r\n");
$line = fgets($smtp, 1024);
if (substr($line, 0, 1) <> "2")
return 0;
return 1;
}
function smtp_quit($smtp)
{
global $SMTP_GLOBAL_STATUS;
fputs($smtp, "QUIT\r\n");
$line = fgets($smtp, 1024);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] = substr($line, 0, 1);
$SMTP_GLOBAL_STATUS[$smtp]["LASTRESULTTXT"] = substr($line, 0, 1024);
if ($SMTP_GLOBAL_STATUS[$smtp]["LASTRESULT"] <> "2") return 0;
return 1;
}
function mail_parse($mail)
{
$newmail = explode("\n",$mail);
$count = 0;
$result =
$newmail[4]."\n".$newmail[6]."\n".$newmail[7]."\n".$newmail[8]."\n";
return $result;
}
?>
//readmail.php
////////////////////////<?
include ("./mail.php");
$pop3 = pop3_open("$pophost", "110");
if (!$pop3) {
printf("[ERROR]未能与主机准确毗连!<BR>\n");
return 0;
}
if (!pop3_user($pop3, "$username")) {
printf("[ERROR] 毛病的用户名!<BR>\n");
return 0;
}
if (!pop3_pass($pop3, "$passwd")) {
printf("[ERROR] 暗码毛病!<BR>\n");
return 0;
}
$data = pop3_retr($pop3,$no);
if (substr($data[9],8,2)=="RO") $read="已读";
else $read="未读";
$countall = count($data);
print "<CENTER><H2>函件内容</H2></CENTER><BR>";
print "<table width =\"100%\"border=1>";
print "<tr><td>发信人</td><td>";
$mailfrom = substr($data[5],5,strlen($data[5])-5);
print "$mailfrom<BR>\n";
print "</td></tr>";
print "<tr><td>收信人</td><td>";
$mailto= substr($data[7],3,strlen($data[7])-3);
print "$mailto<BR>\n";
print "</td></tr>";
print "<tr><td>主题</td><td>";
$subject = substr($data[8],8,strlen($data[8])-8);
print "$subject<BR>\n";
print "</td></tr>";
print "<tr><td>内容</td><td>";
for ($count=10;$count<$countall;$count++)
print "$data[$count]<BR>\n";
print "</td></tr>";
print "<table>";
pop3_quit($pop3);
?>

可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。
小女巫 该用户已被删除
沙发
发表于 2015-2-4 08:24:15 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
海妖 该用户已被删除
板凳
发表于 2015-2-8 16:04:06 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
莫相离 该用户已被删除
地板
发表于 2015-2-9 22:00:08 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
蒙在股里 该用户已被删除
5#
发表于 2015-2-27 22:46:58 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
小魔女 该用户已被删除
6#
发表于 2015-3-1 21:56:48 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
兰色精灵 该用户已被删除
7#
发表于 2015-3-11 00:03:47 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
因胸联盟 该用户已被删除
8#
发表于 2015-3-11 21:21:20 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
再现理想 该用户已被删除
9#
发表于 2015-3-12 11:13:23 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
第二个灵魂 该用户已被删除
10#
发表于 2015-3-17 16:08:11 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
谁可相欹 该用户已被删除
11#
发表于 2015-3-19 16:12:00 | 只看该作者
做为1门年轻的语言,php一直很努力。
admin 该用户已被删除
12#
发表于 2015-3-22 18:29:13 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
再见西城 该用户已被删除
13#
发表于 2015-4-6 04:10:47 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
若天明 该用户已被删除
14#
发表于 2015-4-7 20:16:47 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
飘灵儿 该用户已被删除
15#
发表于 2015-4-8 05:48:32 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
变相怪杰 该用户已被删除
16#
发表于 2015-4-11 04:29:25 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
活着的死人 该用户已被删除
17#
发表于 2015-4-18 01:35:46 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
精灵巫婆 该用户已被删除
18#
发表于 2015-5-8 00:25:09 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
深爱那片海 该用户已被删除
19#
 楼主| 发表于 2015-5-10 15:43:30 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
简单生活 该用户已被删除
20#
发表于 2015-5-12 12:11:29 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 16:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表