请问大家怎么可以监控到利用WEB发送的邮件,谢谢大家了

解决方案 »

  1.   

    监控HTTP数据流,可能不同的邮件系统有不同的实现。
      

  2.   

    download a http sniffer tool to capture http data and analyse it.
      

  3.   

    先谢谢大家了热心了,可是登陆Web发送邮件的话,假设从126发邮件给sina,那通讯是smtp.126.com和smtp.sina.com.cn之间的事,为什么会有数据流返回到用户使用的计算机呢?
      

  4.   

    web发邮件客户端不用smtp,不过服务器端也许是用smtp,126的smtp发给sina的pop3。你所谓的“有数据流返回到用户使用的计算机”是什么意思?
      

  5.   

    谢谢这位大哥了,那问一下,你说的"监控HTTP数据流",应该是监控用户使用的计算机的数据流吧,但是根据返回的信息怎么可以判断用户是在发邮件呢?
      

  6.   

    是的,这是一个问题,只有根据特定的邮件系统来判断。正如上面有一位说的,下载一个http sniffer的工具,先监听分析各个邮件系统的收发邮件的流程。清楚了这个流程后再编程实现。
      

  7.   

    谢谢了,以前我用sniffer工具监控过80端口,接收所有从外界返回到计算机的数据包,发现他返回的也只是一些普通的网页数据,找不到关于发送邮件的HELO、MAIL FROM等这些东西呀,还请大哥指教呀,其实我监控的目的就是想得到发件人、收件人的信息和邮件内容
      

  8.   

    是啊,WEB发邮件用的就是HTTP协议,不是SMTP协议,发件人之类的就封装在HTTP协议里,就在你所谓的网页数据里。所以不同的邮件系统可能就有不同的实现,你得针对不同的系统做不同的实现。
      

  9.   

    下面是我用sniffer截获的邮件从126发给sina的一些http信息,但是从这些数据中好像没什么是很有用的,得不到一些邮件相关的信息,老大帮忙看下,是不是我有什么地方做错了?
    Date: Tue, 13 Sep 2005 06:13:41 GMTServer: Apache/1.3.33 (Unix) mod_fastcgi/2.4.2Location: http://m2157.mail.126.com/coremail/fcg/ldmmapp?sid=fASLesBQUCGAsVyM&mid=1126591991%0A0%0A0%0A4294967295&funcid=sendKeep-Alive: timeout=15, max=98Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=iso-8859-1if(domain == "163.com" && domain == "126.com"){
    document.write(" ");
    }
    if(domain == "163.com"){
    document.write('<script src=http://adclient.163.com/js.ng/site=netease&affiliate=freemail163&cat=sendmsg&type=tvscreen&location=1></scr'+'ipt>');
    }else if(domain == "126.com"){
    document.write('<iframe src="http://adclient.163.com/html.ng/site=netease&affiliate=freemail126&cat=sendmsg&type=tvscreen&location=1" width="360" height="300" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>');
    }
    if(domain == "163.com" && domain == "126.com"){
    document.write("&nbsp;");
    }
      

  10.   

    肯定不只这一点数据吧。你这是服务器的响应啊。发邮件的信息在你的请求里面,肯定是用POST发出去了。
      

  11.   

    谢谢,我将先创建原始套接字,m_s = socket( AF_INET , SOCK_RAW , IPPROTO_IP ) ;
    然后设定WSAIoctl( m_s, SIO_RCVALL , &dwBufferInLen, sizeof(dwBufferInLen),    &dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL ) );
    这样可以就收到所有传入本机的数据,但为什么不能截获发出去的数据呢?是不是有什么问题?
    请问老大,还有没有交简单的其他办法?