200分求救Indy拆分大邮件发送方法 ( 积分: 200 )

  • 主题发起人 主题发起人 wutianlong
  • 开始时间 开始时间
W

wutianlong

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,我是用indy的idSmtp控件做邮件发送客户端的,发现发送超过6M的大邮件时,就发送不成功,现在想做一个跟Outlook一样的大邮件拆分功能,也就是把要发送的大邮件自动拆分,分批发送到邮件服务器,这样成功率会更高,请高手不吝赐教.分数不够可以再加.
 
我把一个11M多的邮件用OE拆开发送后,取得三个邮件的原码,谁能分析一下下面的邮件头信息分别是什么意思:


Content-Type: message/partial;
total=3;
id="01C76AA2.B501D1B0@wutianlong";
number=1
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.3790.326
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.326
X-Coremail-Antispam: 1U3Yxn0WfASr-VFAUDIcSsGvfJTdcIj6I8E87Iv67AKxVW8JV
WxJwCI42IY6xIIjxv20xvE14v26ryj6F1UMIIF0xvEx4A2jsIE14v26r4j6F4UMcIj6xII
jxv20xvE14v26r126r1DMx02cVAKzwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJwCI42
IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1l4x8a6c8ajcxJMxkIecxEwVAFwVW8GwAFF20E
14v26r1j6r4UM7kC6x804xWl1IIY67AEw4v_Jr0_Jr4l5I8CrVACY4xI64kE6c02F40Ex7
xfM7k0a2IF6F4Un29KB7ZKAUJUUUUUnxnvy29KBjDU0xZFpf9x07jEeHgUUUUU129KBjDU
=
 
发送不成功应该是邮件服务器有附件大小限制吧

OE拆开发送后,接收人如何拼接起来呢?

或许可以考虑自己处理一下附件,如果大于某个大小,就用RAR等压缩算法分包压缩,然后再分开发送(这样用户也可以拼接)
 
问题是有时候我的邮件正文都大于6M啊.因为老是回复回复所以时间长了,邮件正文也会很大的.所以压缩算法肯定不行的
 
我上面说的用RAR目的并不是为了把文件压缩到6M以内,而是把大文件分成一个个小于6M的包。你下载程序的时候也碰到过这样分包的文件吧:
Test.Part1.rar
Test.Part2.rar
...
Test.PartN.rar
用户只要用WinRar等解压缩软件打开 Test.part1.rar,就可以把整个东东解压出来。

我上面问你OE分包的东东是怎么合并的,如果用户没有用OE收邮件的话,他怎么把分拆的邮件合并起来?我没有用过这个功能,所以你比较一下,如果觉得OE那种方式更好的话,你再去研究那种机制。否则就直接自己把文件分成小文件,然后一个个发送,用户把所有小文件下载下来后,再用WinRAR打开第一个文件,解压即可。
 
To: xianjun
哦,有道理,我试试看吧,不过还有一个问题我不是很明白,为什么idsmtp发送邮件时占用CPU这么高呢,而我用FoxMail和OE发邮件,CPU占用率很低啊,不知道这是为什么?
 
这个没有碰到过,你可以跟踪你的代码看一下,发送邮件时是执行哪段代码
然后具体分析占CPU的原因。
 
唉!我也分析不出来,好像大部分原因是瑞星在杀毒造成的,我还有个问题请教,当打开瑞星邮件发送监控时发送大邮件会出现socket error #10053错误,这是什么原因啊
 
后退
顶部