使用localhost SMTP发送邮件

pen*_*ate 24 c# iis-6 smtp

我正在尝试在IIS上设置SMTP服务器以发送邮件.SMTP服务器旨在由C#中的ASP.NET代码使用.

我之前使用的是gmail smtp,其中我提供了smtp.gmail.com作为主机的安全端口和我的gmail uid/pwd.这工作得很好.这是用于执行此操作的代码.

SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)

现在我打算在IIS上使用localhost SMTP服务器,我应该为参数UseDefaultCredentials和Credentials提供什么值.我将通过端口25为EnableSsl分配false.

此外,什么是最简单的SMTP虚拟服务器配置.

dav*_*nta 28

使用本地IIS SMTP服务时,将DeliveryMethod设置为PickupDirectoryFromIis.例如:

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
Run Code Online (Sandbox Code Playgroud)

这完全绕过了网络层,并将消息直接写入磁盘.它比通过繁琐的SMTP协议快得多.

当您使用上面的代码时,这意味着您可以摆脱代码的这一部分:

smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;
Run Code Online (Sandbox Code Playgroud)

  • 这是使用本地IIS拾取目录的正确答案.由于它只是写一个文件,它根本不会使用任何凭据,IIS只会为你发送它. (4认同)

Nat*_*tim 17

我认为在localhost中你可以使用:

SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)

  • 您是否启动了 IIS SMTP 服务? (3认同)