通常我的應用程序發送一個通用系統地址的電子郵件。但在某些情況下,我想以登錄用戶身份發送。.NET爲什麼我無法重寫我的web.config mailSettings?
的web.config:
<?xml version="1.0"?>
<configuration>
...
<appSettings>
...
<add key="DefaultEmailAddress"
value="[email protected]" />
</appSettings>
<system.net>
<mailSettings>
<smtp>
<network host="servername"
port="25"
userName="noreply"
password="apple" />
</smtp>
</mailSettings>
</system.net>
...
</configuration>
此代碼無法從web.config中重寫默認的發件人:
Dim from As String = ConfigurationManager.AppSettings("DefaultEmailAddress")
Dim to As String = "[email protected]"
Dim m As New Mail.MailMessage(from, to)
m.IsBodyHtml = True
m.Subject = "Test"
m.Body = "<p>This is a test.</p>"
Dim c As New System.Net.Mail.SmtpClient
If CurrentUser.HasExchangeCredentials Then
Dim userName As String = CurrentUser.ExchangeUserName
Dim password As String = CurrentUser.ExchangePassword
Dim address As String = CurrentUser.EmailAddress
c.UseDefaultCredentials = False
c.Credentials = New System.Net.NetworkCredential(userName, password)
m.Sender = New Mail.MailAddress(address)
End If
c.Send(m)
我的郵件出去,但noreply發送爲@例子。 com並且也不會顯示在我的Outlook已發送文件夾中。我不想UseDefaultCredentials。我想使用一個新的,不同的NetworkCredential。
我正在使用Microsoft Exchange。
謝謝!我設置了m.From。它現在似乎來自用戶。但它仍然不會顯示在Outlook的用戶的已發送文件夾中。爲什麼? – 2009-10-02 11:55:30
我不完全確定,但我認爲發送的項目是Outlook客戶端本身和/或MAPI配置文件的操作,也許....我不認爲.net中的郵件會將任何內容放入發送的項目中。以下是此鏈接:http://bytes.com/topic/asp-net/answers/506310-system-net-mail-outlook – klabranche 2009-10-04 14:18:26