转<在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境] >

最近要在系统里实现相关功能了

首先上网:在网上找到http://blog.csdn.net/irvine007/archive/2006/02/22/606117.aspx资料
其中的问题是cdosys.dll哪里找呢?
答案:cdosys.dll是内置在操作系统里面的,在system32目录下!

奇怪,按照文中的方法,我实现了“送到回执”功能,却怎么也无法进行“已读回执”。

然后在msdn上找到http://msdn2.microsoft.com/en-us/vbasic/bb630227.aspx 权威文章
里边说的关键是这样设置
MyMailMessage.Headers.Add("Disposition-Notification-To", "returnreceipt@return.com")

又看了很多网上的资料,基本上就是这种方法了,看来很权威了。但我这里却总是有问题。

总结一下我的试验情况【我是使用notes服务器,其它邮件服务器没有测试】
一、在.NET 1.1 环境下
1)使用System.Web.Mail方式,回执功能无法测试成功。
2)使用CDOsys.dll组件方式,只能实现“收到回执”,而“已读回执”失败。

二、在.NET 2.0情况下
使用2.0的System.Net.Mail,使用前面资料提到的方法,“已读回执”测试失败。但可以用mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;实现“收到回执”功能

最后解决方案,在一位熟悉notes服务器的同事指点下,
mail.Headers.Add("ReturnReceipt", "1");
成功实现了“已读回执”。
随后在.NET 1.1 环境下测试,发现无效,只能在在.NET 2.0 环境下正常运行。

花了1个整天时间解决这个问题,走了不少弯路,留下给需要的朋友们参考
posted on 2007-11-25 07:48  周奇  阅读(240)  评论(0编辑  收藏  举报