在 SendAsync 方法中从 Web.Config 获取邮件设置?

Get Mail Setting from Web.Config in SendAsync Method?

我正在研究忘记密码功能。在我的 web.config 文件中,我完成了邮件设置:

<system.net>
    <mailSettings>
      <smtp from="email">
        <network host="host" port="25" userName="" password="=" enableSsl="true" />
      </smtp>
    </mailSettings>
</system.net>

在我的 SendAsync 方法中,我试图从 web.config:

读取设置
SmtpClient client = new SmtpClient();
return client.SendMailAsync(ConfigurationManager.AppSettings["SupportEmailAddr"],
                                    message.Destination,
                                    message.Subject,
                                    message.Body);

我不知道这是什么:AppSettings["SupportEmailAddr"]

我从 here.

中获取了这个

它给了我以下异常:

Value cannot be null. Parameter name: from

在您的 web.config 文件中,您有一个名为:<appSettings>.

的部分

这也是ConfigurationManager.AppSettings所指的。

["SupportEmailAddr"] 正在查看名为 SupportEmailAddr 的特定设置。

在您的 web.config 中,它看起来像这样:

<appSettings>
    <add key="SupportEmailAddr" value="someone@example.com" />
</appSettings>

您收到的消息不能为空,因为您的 web.config 中没有上述设置。

因此,要修复错误消息,请找到您的 <appSettings> 并添加:

<add key="SupportEmailAddr" value="someone@example.com" />

或者,如果您的 AppSettings 中已有当前值,则只需更改您在 C# 代码中查找的密钥。

ConfigurationManager.AppSettings["CorrectAppSettingKey"]

注意:如果您计划使用任何 web.config 继承功能,您应该 WebConfiguratonManger.AppSettings 而不是 ConfigurationManager.AppSettings。在这里查看两者之间的区别:What's the difference between the WebConfigurationManager and the ConfigurationManager?