关于FoxMail的研究

原创 2004年02月15日 23:38:00

    现在使用FoxMail的用户越来越多了,但是FoxMail却不像OutLook一样给编程人员提供开发接口。我认为这对一个好的软件的推广来说是很不利的。前几个月小弟由于开发需要对FoxMail进行了以下研究,这几天闲下来将材料整理了一下,供大家参考。我使用FoxMail4.2进行研究,但是在FoxMail5.0推出后,我也进行了测试,仍然使用。

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

FoxMail的数据保存,都是由两个文件组成 .Ind .Box的文件,Ind 文件主要记录简单信息,以及详细信息在.Box文件中的起始位置。

 

地址簿:

默认情况下,FoxMail的地址簿由两个文件组成,Address.ind Address.box

Address.Ind文件

文件头的范围为00H-39H,64个字节。

05H保存纪录的个数,12H-21H记录地址薄名称。

记录部分40H开始是第一条记录,每条记录长B0H

每条记录的00H是记录号(01开始顺序编号)04H是删除标记,该字节为1表明此记录被用户删除(由此可见在FoxMail中删除的信息没有被真正的删除)

05H06H纪录在.BOX中的地址如 [05H]=01,[06H]=EA 那么该项纪录的详细信息被保存在Address.Box文件中起始位置为01FA

09H0AH此记录在.Box文件中详细信息的字节数目加上156H(记录整条记录在Box文件中的总长度)

11H是组记录,该字节为1表明此记录为一条组记录;(我没有对此项进行详细研究)

12H是此项纪录名称的长度,最大为20H;

13H-32H是此项纪录名称的内容

33H是邮件地址长度,最大为40H

34H-73H是邮件地址内容

Address.Box文件

每条记录由“_____________S”开始,后加一回车符(0A0D)

紧接着是详细信息,分别由以下几项组成(按顺序排列)

Emails

Mobile

PagerNum

OICQ

ICQ

HomePage

Sex

Birthday

FmCountry

FmProvince

FmCity

FmPostcode

FmStreetAddr

HomeTel

HomeTel2

FmFax

Company

OfCountry

OfProvince

OfCity

PostCode

HomeAddress

OfHomePage

OfPosition

OfDepartment

OfficeTel

OfficeTel2

Fax

构造格式:名称 + 冒号 + 0A0D + 信息内容 + 0A0D

最后一项构造完成 要加入2 0A0D

实例1

FoxMail中遍历地址簿联系人姓名和EMail信息:

bool GoAll(char *szFileNameOfInd)

char headbuf[0x41];        // buf

char recbuf[0xb1];           // 内容buf

        FILE* pf=fopen(szFileNameOfInd,"rb");

        fseek(pf,0x40,SEEK_SET);        // 到项目开始

        while(!feof(pf))

        {

                char name[0x21],email[0x41]; // 定义存储姓名和email的字符数组

                for(i=0;i<0x21;i++)

                        name[i]='/0';

                for(i=0;i<0x41;i++)

                        email[i]='/0';

                fread(recbuf,1,0xb0,pf);                // 读取一条记录

                if(recbuf[0x4]==1)                              // 判断删除标志

                {

                       continue;

               }

                if(recbuf[0x11]==1)                     // 判断组标志

                {

                       continue;

               }

                for(i=0;i<recbuf[0x21];i++)             // 获取此条目的联系人姓名

                {

                        if(recbuf[i+0x13]==0)

                                break;

                        name[i]=recbuf[i+0x13];

               }

                for(i=0;i<recbuf[0x33];i++)             // 获取此条目的联系人EMail

                {

                        if(recbuf[i+0x34]==0)

                                break;

                        email[i]=recbuf[i+0x34];

               }

                //此处添加处理name(收件人名),email(收件人地址)的程序

                        return true;

   }

 

实例2

向地址簿中添加一条记录信息,没有给出全部代码。

 

1.      得到文件头

BOOL GetIndFileHead(char* szheadbuf)         // 得到文件头部的函数

{

        fseek(FoxWriter_pf_addr,0x0,SEEK_SET);

        long len=0;

        len=fread(szheadbuf,1,0x40,FoxWriter_pf_addr);

        if(len==0)

                return FALSE;

        return TRUE;

}

 

2.      修改项目数;

int itemcount=szheadbuf[0x5];

itemcount++;

szheadbuf[0x5]=itemcount;

3.      修改项目代号

szbuf[0x0]=itemcount;

4.      创建项目名称

szbuf[0x12]=strlen(strItemName);

for(i=0;i<0x20;i++)

        szbuf[i+0x13]=strItemName[i];

5.      创建项目email

szbuf[0x33]=strlen(strEmails);

        for(i=0;i<0x40;i++)

        szbuf[i+0x34]=strEmails[i];

6.      构造Box文件buf

()

7.      创建项目对Box文件指针

char* pbuf=szbuf;

        pbuf++;

        short* pshbuf=(short*)pbuf;

    pshbuf[0x2]=point;

8.      创建项目字数值

long len=strlen(szBoxbuf)

len+=0x156;

9.      保存IndBox文件

 

(未完,将继续整理关于FoxMail发件箱收件箱信息提取的研究)

关于foxmail的研究

现在使用FoxMail的用户越来越多了,但是FoxMail却不像OutLook一样给编程人员提供开发接口。我认为这对一个好的软件的推广来说是很不利的。前几个月小弟由于开发需要对FoxMail进行了以下...
  • liutaoxwl
  • liutaoxwl
  • 2006年05月15日 14:04
  • 955

SQL注入研究

请勿用于非法用途,本代码只是为了让广大ASP爱好者明白原理,防范于未然。Function bytes2BSTR(vIn)dim strReturndim i,ThisCharCode,NextChar...
  • iuhxq
  • iuhxq
  • 2004年09月08日 08:42
  • 1596

关于XML的研究

$File_Read = fileopen($Xml_Src_File)$File_Write = fileopen($Xml_UTF8_File, 138)filewrite($File_Write...
  • lw35888894
  • lw35888894
  • 2009年10月16日 22:13
  • 431

产品包装测试方法

包装是产品重要属性之一。产品的包装除了具有保护产品、携带便利的功能外,新颖的包装还具有吸引消费者、提升产品形象和发布广告信息等营销辅助作用。包装可以通过形状、色彩、文字说明、插图等提高视觉作用,向消费...
  • u013761220
  • u013761220
  • 2014年03月21日 11:22
  • 586

foxmail占cpu 100%解决办法

以前我的电脑foxmail一直不卡,但是同事的foxmail都说卡,占用cpu 100%。但是今天发现我的foxmail也卡起来,占cpu 50%(双核,占满一个核了)。回想一下最近改过什么电脑配置:...
  • u013401853
  • u013401853
  • 2017年05月27日 13:48
  • 2523

引用 Foxmail常用的25个技巧

一、找回被删除的邮件 在Foxmail中,当我们选中收件箱中的邮件,同时按住Shift键和“删除”按钮将邮件彻底删除(不放入废件箱),或者在废件箱中删除邮件以后,突然发现删除的邮件还有用,该怎么办呢...
  • bianyamei
  • bianyamei
  • 2015年12月23日 10:08
  • 1551

foxmail密码忘记后的一种办法[备忘]

foxmail设置邮箱的时候,会把密码以星号的形式显示。利用星号密码查看器,比如“晨风星号密码查看器.exe”,内含广告,360安全卫士没报告木马。就可以找回自己的foxmail密码了。所以,foxm...
  • u011729865
  • u011729865
  • 2016年12月22日 11:02
  • 1256

foxmail常见邮件服务器地址设置

腾讯QQ邮箱 接收服务器:pop.qq.com 发送服务器:smtp.qq.com  网易126邮箱 接收服务器:pop3.126.com 发送服务器:smtp.12...
  • ranyang1992
  • ranyang1992
  • 2015年03月20日 14:38
  • 17302

foxmail格式研究

现在使用FoxMail的用户越来越多了,但是FoxMail却不像OutLook一样给编程人员提供开发接口。我认为这对一个好的软件的推广来说是很不利的。前几个月小弟由于开发需要对FoxMail进行了以下...
  • verlongan
  • verlongan
  • 2005年03月23日 08:50
  • 1902

foxmail文件格式初步分析。。

foxmail存储邮件的文件夹内对应收件箱、发件箱等都有两个文件。如收件箱,则对应in.ind,in.box两个文件in.ind是该文件夹的索引文件,以48位16进制代码开始,第三行的最后几位应该用来...
  • jackyvan
  • jackyvan
  • 2007年05月15日 11:48
  • 3514
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于FoxMail的研究
举报原因:
原因补充:

(最多只允许输入30个字)