通常,我的应用程序会发送带有通用系统地址的电子邮件。但在某些情况下,我想以登录用户的身份发送。
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文件夹中。
我不想UseDefaultCredentials。我想使用一个新的,不同的NetworkCredential。
我在使用Microsoft。
发布于 2009-10-02 03:14:15
我认为这回答了你的问题:
http://www.vbdotnetforums.com/vb-net-general-discussion/14895-system-net-mail-mailmessage-sender-vs-system-net-mail-mailmessage.html
发送者和来自者是分开的。更改发件人不会更改发件人地址。
在代码中,将From属性设置为address变量。
发布于 2009-10-02 02:10:13
在上面的代码中,我不知道您要在哪里覆盖默认发件人。您正在将"From“值设置为noreply@example.com:
Dim from As String = ConfigurationManager.AppSettings("DefaultEmailAddress")你应该尝试这样的方法:
Dim from As String = CurrentUser.ExchangeUserName这将使用用户的电子邮件地址,而不是位于您的web.config文件中的值。
https://stackoverflow.com/questions/1507400
复制相似问题