在利用Outlook com组件编程的时候发现,Outlook中接受的邮件的发件人的Email地址不能正确的获得,他的属性里面只有一个SenderName属性,(ol2003之前的版本).而网上的解决办法大多使用CDO。而且大部分代码使用VB写,迁移到csharp不知道如何去做。
郁闷了几个小时之后,终于找到了一个简单有效的解决版本。
具体做法是利用MailItem接口的replay()方法。得到reply后的mail对象,再从这个对象的Recipients获得Address,这个Address就是发件人的Email地址了。
具体的Csharp代码如下:
               MSOutlook.MailItem replymail = olmail.Reply();
                MSOutlook.Recipients rec = replymail.Recipients;
                string from = string.Empty;
                for (int i = 1; i <= rec.Count; i++) {
                    from += rec[i].Address + ";";
                }
               Track.WriteLine(from.Substring(0, from.Length - 1));

posted on 2007-08-16 11:27  何东建  阅读(1356)  评论(1编辑  收藏  举报