9

有没有办法在 C# 代码中发送电子邮件而不必知道服务器上的 SMTP 服务器配置等,或者设置任何这些东西?

我正在开发的代码将部署到实时服务器,但我对配置一无所知,所以我无法预测 SMTP 服务器将是什么。

4

7 回答 7

11

将此添加到您的 web.config(此处为 MSDN 参考):

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="jdoe@example.com">
            <network host="localhost" port="25" />
        </smtp>
    </mailSettings>
</system.net>

在不指定配置设置的情况下使用 SmtpClient 将使用 web.config 中的值:

MailMessage msg = new MailMessage(...);
// build message contents
SmtpClient client = new SmtpClient();
client.Send(msg);
于 2009-01-20T21:28:53.697 回答
2

不久前我回答了一个类似的问题。你可以在这里查看。使用papercut,您可以在不知道或使用实际生产 smtp 服务器的情况下测试您的应用程序。

然后在测试期间,您可以将主机设置为在 app/web 配置中运行剪纸的本地机器。因此,一旦投入生产,就可以对其进行更改。

Papercut 将向您显示已发送的电子邮件以及内容。

于 2009-01-20T21:35:21.297 回答
1

最好的答案是,如果您在直播之前一无所知,您可以将所有设置移至 web.config 中吗?这将允许配置直到最后一分钟。下面是一些转储到 web.config 文件中的代码。我会质疑为什么您无权访问此信息

<system.net>
    <mailSettings>
      <smtp from="you@yourdomain.com">
        <network host="SMTP SERVER ADDRESS" port="25"
         userName="USERNAME" password="PASSWORD">
      </smtp>
    </mailSettings>
  </system.net>
于 2009-01-20T21:28:26.477 回答
0

如果您的 SMTP 配置正确,请执行以下操作:

MailMessage mail = new MailMessage(); 

mail.To = "To"; 
mail.From = "From"; 
mail.Subject = "Subject";     
mail.Body = "Body"; 

SmtpMail.SmtpServer = "localhost"; 
SmtpMail.Send(mail); 
于 2009-01-20T21:28:33.963 回答
0

作为替代方案:如果您不想依赖服务器配置并以编程方式进行操作,您可以随时执行以下操作:

MailMessage mail = new MailMessage() {
    To = "someone@somewhere",
    From = "someone@somewhere",
    Subject = "My Subject",
    Body = "My message"
};

SmtpClient client = new SmtpClient("SMTP Server Address");
    // Naturally you change the "SMTP Server Address" to the
    // actual SMTP server address
client.Send(mail);

但我建议您将其粘贴在 web.config 文件中(也可以通过 ASP.NET Web 配置工具进行配置)。

于 2009-01-20T21:42:01.957 回答
0

从谷歌试试这个

http://mailsystem.codeplex.com/

于 2012-08-07T09:49:10.247 回答
0

是的,您可以使用 SMTP4Dev 之类的工具来“发送”电子邮件,而根本不需要 SMTP 服务器。我经常使用它进行测试,以确保我实际上不会错误地向真实用户发送电子邮件。

更多信息@ http://netdevtools.com/how-to-test-smtp-emails-without-a-mail-server-no-smtp-configuration-required-in-asp-net-c/

于 2017-02-21T01:26:33.887 回答