摘要
用户A答复邮件时,会默认将B作为接收人。
回复,全部回复,转发(Reply和Foward方法)邮件的时候,需求是用户可以删除用户B(转发除外),可以自定义接收人。但提供的Reply方法,发现用户B仍会收到答复的邮件。
解决办法
方法:
方法是通过ResponseMessage对象实现发送和添加额外的接收人的。
ExchangeService _exchangeService = ExchangeService(ExchangeVersion.Exchange2010_SP2);
回复转发操作
Reply_Forword(Email email,UserInfoBase user, (userInfo == ArgumentNullException(用户信息为空,无法访问exchange服务器= = 邮件内容
EmailMessage message = EmailMessage.Bind(_exchangeService,[] strTos = email.Mail_to.Split(=
(type == = message.CreateReply( (type == = message.CreateReply( (type == = (responseMessage !=
( item email.Mail_to.Split(
( item email.Mail_cc.Split(= =
}
</span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception ex)
{
</span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> Exception(<span style="color: #800000;">"</span><span style="color: #800000;"><a href="https://www.jb51.cc/tag/fasongyoujian/" target="_blank" class="keywords">发送邮件</a>出错,</span><span style="color: #800000;">"</span> + ex.Message + <span style="color: #800000;">"</span><span style="color: #800000;">:</span><span style="color: #800000;">"</span> +<span style="color: #000000;"> ex.StackTrace);
}
}</span></pre>
总结
解决办法的时候,反编译了回复和转发方法的实现方式,发现内部是通过ResponseMessage对象来实现的,就没再去尝试。但通过同事帮忙,找到了MSDN一篇文章
文章中又提到了ResponseMessage对象。
添加额外的接收人。
修改掉了B用户。
邮件的时候,是会修改掉用户B的,转发邮件并不需要默认的接收人,因为你转发的对象还未知。
修改掉用户B的原因。猜测,通过这种方式截获了接收人列表。
解决过程,警告自己一下。
原文链接:https://www.f2er.com/csharp/191529.html