繁体   English   中英

设置没有用户名和密码的SMTP Loally

[英]Setting up SMTP loally without username, password

我正在尝试将SMTP中继设置为从Web应用程序发送不带用户名和密码的邮件。 我读到您可以在IIS上本地设置并使用“不认证” 在此处输入图片说明 在web.config中,这些是我的设置:

<appSettings>
  <add key="SmtpServerAddress" value="localhost" />
  <add key="SmtpServerPort" value="25" />
  <add key="SmtpServerTimeout" value="30" />
</appSettings>
<system.net>
<mailSettings>
  <smtp deliveryMethod="Network" from="">
    <network host="localhost" port="25" />
  </smtp>
</mailSettings>

我发送电子邮件的后台代码是:

 SmtpClient sc = new SmtpClient();
    sc.Host = "localhost";
    sc.Port = 25;
   sc.UseDefaultCredentials = true;
 sc.DeliveryMethod = SmtpDeliveryMethod.Network;
 try
   {
     sc.Send(mm);
   }
 catch (Exception ex)
   {
     throw ex;
   }

当我提交单击事件以发送邮件时,我收到“找不到远程服务器”。

您能对此有所说明吗?

您不能添加localhost并开始发送电子邮件(除非实际上正在运行SMPT服务器)。 您仍然需要一个“真实的” SMTP服务器。 这些设置仅需在Web.Config中添加默认的SMTP服务器即可。

如果您未在IIS中设置这些设置,则您将像这样发送邮件。 在SO上可能有此示例。

using (SmtpClient client = new SmtpClient())
{
    client.Host = "mail.fakedomain.nl";
    client.Port = 25;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.UseDefaultCredentials = false;
    client.Credentials = new NetworkCredential("fake@fakedomain.nl", "abcd123");

    //send mail
}

但是,如果您在IIS中设置了默认设置,则可以执行此操作

using (SmtpClient client = new SmtpClient())
{
    //send mail
}

它节省了几行代码。

您是否正在开发计算机上尝试此操作? 如果是这样,您可以安装hMailServer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM