Обычно мое приложение отправляет электронное письмо с общим системным адресом. Но в некоторых случаях я хочу вместо этого отправить как вошедший в систему пользователь.
web.config:
<?xml version="1.0"?>
<configuration>
...
<appSettings>
...
<add key="DefaultEmailAddress"
value="noreply@example.com" />
</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 = "sadams@example2.com"
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@example.com, а также не отображается в папке отправленных Outlook.
Я не хочу ИспользоватьDefaultCredentials . Я хочу использовать новый, отличный NetworkCredential .
Я использую Microsoft Exchange.