有没有办法在 C# 代码中发送电子邮件而不必知道服务器上的 SMTP 服务器配置等,或者设置任何这些东西?
我正在开发的代码将部署到实时服务器,但我对配置一无所知,所以我无法预测 SMTP 服务器将是什么。
有没有办法在 C# 代码中发送电子邮件而不必知道服务器上的 SMTP 服务器配置等,或者设置任何这些东西?
我正在开发的代码将部署到实时服务器,但我对配置一无所知,所以我无法预测 SMTP 服务器将是什么。
将此添加到您的 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);
最好的答案是,如果您在直播之前一无所知,您可以将所有设置移至 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>
如果您的 SMTP 配置正确,请执行以下操作:
MailMessage mail = new MailMessage();
mail.To = "To";
mail.From = "From";
mail.Subject = "Subject";
mail.Body = "Body";
SmtpMail.SmtpServer = "localhost";
SmtpMail.Send(mail);
作为替代方案:如果您不想依赖服务器配置并以编程方式进行操作,您可以随时执行以下操作:
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 配置工具进行配置)。
从谷歌试试这个
是的,您可以使用 SMTP4Dev 之类的工具来“发送”电子邮件,而根本不需要 SMTP 服务器。我经常使用它进行测试,以确保我实际上不会错误地向真实用户发送电子邮件。