问题描述
我正在尝试假冒User2时从我的Office 365帐户发送电子邮件。
{
ExchangeService service = new ExchangeService();
string fromUserEmail = new string("User2@domain");
service.Credentials = new WebCredentials("User1@domain","password");
service.UseDefaultCredentials = false;
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress,fromUserEmail);
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
EmailMessage email = new EmailMessage(service);
email.ToRecipients.Add("someone@somewhere");
email.ReplyTo.Add(replyToEmail);
email.Subject = "HelloWorld";
email.Body = new MessageBody("Test message");
email.Send();
}
我得到一个System.NullReferenceException:“对象引用未设置为对象的实例。”在email.Send()上。当我注释掉服务时,假冒就可以了。我在做什么错了?
解决方法
已解决。我需要通过
获得许可New-ManagementRoleAssignment -Name:User1_impersonation -Role:ApplicationImpersonation -User: "User1@domain"
我不知道为什么Visual Studio没有提供更有用的错误消息。