1

有没有一种简单的方法可以禁用在 asp.net 中发送邮件?我正在使用网络表单,但我不想在我的开发服务器上工作时发送电子邮件。我可以注释掉我的系统发送电子邮件的每个地方,但我认为有一种更简单的方法可以做到这一点。

谢谢

4

4 回答 4

6

希望您集中了“发送电子邮件”功能。然后很容易。检查您是否是本地/调试:

HttpContext.Current.Request.IsLocal || HttpContext.Current.IsDebuggingEnabled

并适当回应。

我选择实际发送电子邮件,但我将 更改to为我的电子邮件帐户并添加额外消息,说明消息中的 、 和 是谁toccbcc确保清除所有这些字段,以免发送真正的电子邮件)。这样您就可以判断您发送的电子邮件是否按预期工作——尤其是在您切换模板、替换电子邮件中的数据等时。

如果您没有集中“发送电子邮件”功能......可能是时候硬着头皮去做了。

于 2013-03-01T17:39:15.260 回答
0

一般来说,处理这个问题的最简单方法是在电子邮件配置中。通常它是数据库或 web.config 设置。您正在寻找的是定义用于发送消息的邮件服务器名称的部分。

于 2013-03-01T17:37:23.397 回答
0

做你想做的事情的最简单方法涉及一点架构:

应用程序发送到的所有电子邮件地址都应该是您的 web.config 中的变量,此时复制和注释掉电子邮件地址字符串行并设置所有电子邮件发送给您变得很容易。

否则,您必须注释掉电子邮件在哪里逐行发送,当您推入 prod 时,该电子邮件在许多文件中变得非常容易出错,或者您的应用程序在测试期间预期发送电子邮件时将超时。

您还可以使用属性:http: //msdn.microsoft.com/en-us/library/65zdfbdt%28v=vs.71%29.aspx

于 2013-03-01T17:58:10.777 回答
0

我建议:

  1. 使用 configSource 进行环境相关设置(例如,有一个 App_Data\config\dev 和 App_Data\config\live 等)。
  2. 在您的开发配置文件中,只有一个空的 SMTP 设置,如 -

不会发送电子邮件,也不会抛出异常(至少 4.5.2 的 .NET 框架,这是我正在使用的。

希望这可以帮助。

于 2019-02-10T14:49:13.170 回答