收发邮件的一些心得。
这段时间在搞收发邮件。积累了一些心得,发现.NET本身自带的邮件发送功能有点问题,如果我是用126邮箱来发,同时发去了新浪,163,126,或其他邮箱,发现只有126的不能收,其他的都能收得到。由于时间关系没有深入去研究它。
后来改用了jmail来发,一点问题都没有,这个组件确实好用。发的问题是好了,收的问题又来了。当收取邮件时,特麻烦,不是说程序写起来麻烦,是处理上很麻烦。网上很多例子都是,邮件收回来了,就会去删除服务器上的邮件。我不能这么干,删不删应该由用户自己去决定。由于收取了没有删除服务器上的邮件,所以每次去收得和本地对比一下,如果是新的才收下来。
其中 jmail.POP3Class popMail = new POP3Class();//建立收邮件对象
for (int i = popMail.Count; i >= 1; i--)
{
string MessageID = popMail.GetMessageUID(i);//这个方法能得到这封邮件的唯一标识
}
取到的值应该是这样的:
如果附件大的话,收得更慢,随便搞了一下有些邮件有附件,有些邮件没有附件。46封邮件,要收3分多钟。
如果没有附件的话,它收得还是挺快的。
最终还是舍弃了,web可能不具备收邮件的能力。所以最终只能在服务器端写了一个服务进行处理。如果各位有什么好的解决方案,愿闻其详。
后来改用了jmail来发,一点问题都没有,这个组件确实好用。发的问题是好了,收的问题又来了。当收取邮件时,特麻烦,不是说程序写起来麻烦,是处理上很麻烦。网上很多例子都是,邮件收回来了,就会去删除服务器上的邮件。我不能这么干,删不删应该由用户自己去决定。由于收取了没有删除服务器上的邮件,所以每次去收得和本地对比一下,如果是新的才收下来。
其中 jmail.POP3Class popMail = new POP3Class();//建立收邮件对象
for (int i = popMail.Count; i >= 1; i--)
{
string MessageID = popMail.GetMessageUID(i);//这个方法能得到这封邮件的唯一标识
}
取到的值应该是这样的:
1201003258.M407665P44098V0300FF01I00A13131.freemai |
1193448159.60063.freemail-g2.xinnetdns.com,S=2318 |
1186556047.26437.freemail-g2.xinnetdns.com,S=29537 |
1185785213.30966.freemail-g2.xinnet.com,S=209785 |
1182761811.41467.freemail-g2.xinnet.com,S=3306 |
1182761258.77575.freemail-g2.xinnetdns.com,S=3306 |
1174354846.58042.freemail-g2.xinnetdns.com,S=1506 |
1169261191.49634.freemail-g2.xinnetdns.com,S=25076 |
如果附件大的话,收得更慢,随便搞了一下有些邮件有附件,有些邮件没有附件。46封邮件,要收3分多钟。
如果没有附件的话,它收得还是挺快的。
最终还是舍弃了,web可能不具备收邮件的能力。所以最终只能在服务器端写了一个服务进行处理。如果各位有什么好的解决方案,愿闻其详。