易截截图软件、单文件、免安装、纯绿色、仅160KB

基于raw smtp用php实现简易的smtp客户端

任务需求:一个会议投稿系统,在作者提交论文摘要时自动向作者发送一封确认邮件。
(注:投稿系统使用的是myreview
)
仔细考虑一下,这个任务可以有以下几种方式完成:
在服务器上配置sendmail服务,使用php中的的mail函数发送邮件;
在服务器上安装mutt + msmtp,或者在服务器上安装其它的smtp客户端程序,使用smtp客户程序发送邮件
写一个C/S程序,每当有作者提交论文时,服务器上的client端程序即把邮件内容组合好,然后通知在我的电脑上监听的server端程序,server端程序于是调用我的电脑上的邮件发送脚本来发送邮件。这个c/s程序可以用java, c, php等来写
用nc或者telnet使用raw smtp协议来发送邮件
从用linux以来就对sendmail这个服务没有好感,方法一放弃。也不想在服务器上安装附加的软件,所以方法二放弃。对比起来,方法四比方法三更简单一些。
方法四的思路:使用tcpdump拦截一次完整的smtp发信过程,然后写程序模拟这个过程。
首先启动tcpdump对来往的数据包进行监控:
[root@jcwkyl review]# tcpdump -vvv -t -X -s 1500 -w data host mail.jlu.edu.cn
-vvv表示用最详细的格式来记录捕获的数据包,-t表示不记录时间戳,-X表示用hex和ascii显示数据包内容,-s表示显示长度为1500而不是默认的68,-w表示输出到data文件中。
同时,发送一封邮件。
[whb@jcwkyl bash]$ echo "mail content" | mutt -s "test subject" jcwkyl@gmail.com
看这边tcpdump:
[root@jcwkyl review]# tcpdump -vvv -t -X -s 1500 -w data host mail.jlu.edu.cn
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
Got 34
捕获了34个数据包。查看记录文件:
[root@jcwkyl review]# tcpdump -vvv -t -X -s 1500 -r data | less
输出很多,从其中可以看到数据往来的格式,截取其中三个数据包为例:




<!--
@page { size: 8.5in 11in; margin: 0.79in }
P { margin-bottom: 0.08in }
-->

IP (tos 0x0, ttl 
61, id 51365, offset 0, flags [DF], proto: TCP (6), length: 63)
mail.jlu.edu.cn.sm
tp > jcwkyl.gridlab.57415: P, cksum 0x9765
(correct), 1:12(11) ack 1 win 1448 <nop,nop,timestamp 203
2907544
165074058>
        0x0000: 
4500 003f c8a5 4000 3d06 577f cac6 1038 


相关文档:

PHP 一些知识

1.取得当前内存使用大小:memory_get_usage()
2.计算执行时间:microtime(true)
3.设置script执行时间限制set_time_limit
4.设置内存限制ini_set("memory_limit","256M");
3.从远程下载文件的两个方法:
$contents=file_get_contents("http://www.govtrack.us/data/us/gis/zip4dist-prefix.t ......

用php获取本周,上周,本月,上月,本季度日期的代码

用php获取本周,上周,本月,上月,本季度日期的代码,主要用到date,strtotime和mktime函数.
echo date("Ymd",strtotime("now")), "<br />";
echo date("Ymd",strtotime("-1 week Monday")), "<br />";
echo date("Ymd",strtotime("-1 week Sunday")), "<br />";
echo date("Ymd",strtotime("+0 week ......

php特殊字符过滤

php特殊字符过滤
1、过滤标签(HTML):strip_tags()
例如:
<?php
$text = '<?php ?><p>Test paragraph.</p><!-- Comment -
-> <a href=http://topic.csdn.net/u/20090311/09/"#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// 允许使用<p>和< ......

php 缩略图函数

function getThumbs($filename,$savepath,$d_w,$d_h,$b,$img_name)
{
    if($b)
    {
        $photourl = $savepath."/".$img_name;
    }else
    {
        $photourl = ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号