首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.NET为什么我不能覆盖我的web.config mailSettings?

.NET为什么我不能覆盖我的web.config mailSettings?
EN

Stack Overflow用户
提问于 2009-10-02 01:46:33
回答 2查看 1.6K关注 0票数 1

通常,我的应用程序会发送带有通用系统地址的电子邮件。但在某些情况下,我想以登录用户的身份发送。

web.config:

代码语言:javascript
运行
复制
<?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的默认发送方:

代码语言:javascript
运行
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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变量。

票数 2
EN

Stack Overflow用户

发布于 2009-10-02 02:10:13

在上面的代码中,我不知道您要在哪里覆盖默认发件人。您正在将"From“值设置为noreply@example.com:

代码语言:javascript
运行
复制
Dim from As String = ConfigurationManager.AppSettings("DefaultEmailAddress")

你应该尝试这样的方法:

代码语言:javascript
运行
复制
Dim from As String = CurrentUser.ExchangeUserName

这将使用用户的电子邮件地址,而不是位于您的web.config文件中的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1507400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档