2012-01-19 54 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

相關問題