我正在爲我的公司開發一個Web應用程序。其中一部分需要內部用戶填寫表格,並代表該用戶發送電子郵件。這一切都在公司內部。我搜索並找到了兩個可能的路由舊system.net.mail和更新的microsoft.exchange.webservices,但似乎我們的交換服務器需要憑據。我只能得到用戶的登錄名和他的電子郵件地址登錄+「@ company.com」。我怎樣才能做到這一點?通過交換服務器問題發送電子郵件。 (system.net.mail和microsoft.exchange.webservices)
下面是我使用smtp(system.net.mail)的代碼,但它不起作用。
string[] username =System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split('\\');
string email = username[1] + "@company.com";
MailAddress from = new MailAddress(email);
MailAddress to = new MailAddress("[email protected]");
MailMessage message = new MailMessage(from, to);
message.Subject = "testmail";
message.Body = "<h>testmail</h>";
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(message);
嗨達娜,您的評論是非常有幫助的。我確實嘗試設置如下的SMTP SmtpClient client = new SmtpClient(「10.21.80.174」); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = true; client.EnableSsl = true;但它仍然無法正常工作。任何想法爲什麼? – John 2013-02-14 18:47:36
與EWS一樣,client.UseDefaultCredentials將發送正在運行的進程/線程的憑證。因此,在Web應用程序中,默認情況下,這將是一些未授權的IIS應用程序池標識,或者如果是這樣配置的話,可能還需要一個服務帳戶。無論哪種方式,它是發送到SMTP的帳戶。與EWS一樣,您需要提供NetworkCredential(即密碼),或允許IIS身份通過SMTP發送。 – 2013-02-14 18:53:36
謝謝達納。我認爲它回答了我的問題。 – John 2013-02-14 20:11:53