2012-01-19 55 views
11

我使用EWS托管API发送电子邮件。帐户“帐户 @ domain.com”有权限“发送为”使用“发件人 @ domain.com”邮箱发送邮件(从Outlook,它工作正常)。EWS托管API:如何设置电子邮件地址?

但我尝试从代码 - 它不工作,在邮件中我在“From”“帐户 @ domain.com”字段中阅读。

.... 
EmailMessage message = new EmailMessage(service); 
message.Body = txtMessage; 
message.Subject = txtSubject; 
message.From = txtFrom; 
.... 
message.SendAndSaveCopy(); 

如何代表其他用户发送邮件? :)

回答

6

自从我摆弄同样的事情以来,我已经有一段时间了,我认为这是不可能的,尽管有“发送”权限。

模拟是去与EWS唯一的出路,看到MSDN

ExchangeService service = new ExchangeService(); 
service.UseDefaultCredentials = true; 
service.AutodiscoverUrl("[email protected]"); 

// impersonate user e.g. by specifying an SMTP address: 
service.ImpersonatedUserId = new ImpersonatedUserId(
    ConnectingIdType.SmtpAddress, "[email protected]"); 

如果没有启用模拟,你必须提供用户代表谁的要采取行动的凭据。见this MSDN article

ExchangeService service = new ExchangeService(); 
service.Credentials = new NetworkCredential("user", "password", "domain"); 
service.AutodiscoverUrl("[email protected]"); 

或者,您可以简单地指定一个reply-to address

EmailMessage mail = new EmailMessage(service); 
mail.ReplyTo.Add("[email protected]"); 

然而,“发送”权利使用System.Net.Mail,这在很多情况下,只是发送电子邮件会做得很好发送邮件时适用。有tons of examples说明how to do this

// create new e-mail 
MailMessage mail = new MailMessage(); 
mail.From = new MailAddress("[email protected]"); 
mail.To.Add(new MailAdress("[email protected]")); 
message.Subject = "Subject of e-mail"; 
message.Body = "Content of e-mail"; 

// send through SMTP server as specified in the config file 
SmtpClient client = new SmtpClient(); 
client.Send(mail); 
+0

mail.ReplyTo将无法正常工作,也没有二传手这一点。 public EmailAddressCollection ReplyTo {get; } – RobDigital

+0

对,它是一个集合。所以你需要做'mail.ReplyTo.Add(“[email protected]”)' - 我会修正上面的例子。 – bernhof

+0

使用模拟我在mail.send上得到一个错误。 - 引用邮箱时必须指定主SMTP地址 – markthewizard1234

0

,我认为你应该使用Sender属性,以便在你的代码应该是这样的:

EmailMessage message = new EmailMessage(service); 
message.Body = txtMessage; 
message.Subject = txtSubject; 
message.Sender= txtFrom; 
.... 
message.SendAndSaveCopy(); 
+0

不,这似乎不起作用。我尝试过设置发件人,发件人名称和发件人地址,即使他们已设置,电子邮件仍然来自您的服务设置中指定的帐户。 – RobDigital

相关问题