0

我希望有人可以帮助我解决问题,因为这是另一种情况,但我不完全理解它为什么起作用:

我在 web.config 中有标准的 SMTP 设置,并且我有一个自定义邮件部分,因为我需要根据代码中调用的方法从不同的电子邮件地址发送。

我想是因为我已经在自定义部分中定义了来自地址的不同邮件,所以我可以删除标准的 mailSettings 部分,但代码在发件人地址处出现,我相信因为我正在定义一个新的 System.Net.Mail.MailMessage 实例这会自动查看标准的 mailSettings 部分。

如果我有标准的 mailSettings 部分,我的两种方法都可以工作,从不同的地址发送电子邮件。

我查看了 Scott Guthrie 的博客文章,他在 mailSettings 中也有标准设置,但也定义了发件人地址 - 在他的示例中,方法中的发件人地址与 web.config 中 mailSettings 部分的发件人地址不同

所以,我的问题是:

  1. MailMessage 类是否会自动查看 mailSettings 部分?
  2. 为什么当我在自定义部分中定义发件人地址时,它没有被选中,为什么在这种情况下我不能删除标准的 mailSettings 部分?
  3. 如果我必须使用标准设置,因为我使用的是 MailMessage 类,那么如何将发件人地址定义为与 mailSettings 部分不同的东西,为什么我们在那里有一个发件人地址?

在我看来,在 Scott Guthrie 的示例中,他用代码中的地址覆盖了 mailSettings 中的发件人地址,如果他没有在代码中定义发件人地址,它将默认为 mailSettings 中的地址,但我希望有人可以为我澄清这一点。

非常感谢!

4

1 回答 1

2

1.MailMessage 类会自动查看mailSettings 部分吗?

是的

2.为什么当我在自定义部分定义发件人地址时,这没有被选中,为什么在这种情况下我不能删除标准的mailSettings部分?

我不知道您所说的“自定义部分”是什么意思。如果它是您定义的自定义部分,为什么要自动拾取它?

3.如果我必须使用标准设置,因为我使用的是 MailMessage 类,如何将发件人地址定义为与 mailSettings 部分不同的东西,为什么我们在那里有一个发件人地址?

如果您没有在代码中明确设置 From 地址,则将使用 smtp 配置中的 From 地址。如果您的 smtp 服务器允许,您可以在代码中设置不同的发件人地址。通常,需要身份验证 (*) 的 smtp 服务器不允许使用任意 From 地址,在这种情况下,在配置中设置 From 地址更有意义。

(*) 虽然我曾在 smtp 服务器不需要在内联网上进行身份验证的组织中工作。通常只需要一封声称来自 CEO 的恶搞电子邮件,就可以让他们改过自新。

于 2013-09-17T08:59:55.000 回答