分享
 
 
 

关于FoxMail的研究

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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. 保存Ind和Box文件

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有