繁体   English   中英

使用localhost SMTP发送邮件

[英]Send mail using localhost 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);

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

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

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

  smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

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

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

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

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

SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Send(mailMessage);

这取决于您配置smtp服务器的方式。 您可能根本不需要使用任何凭据,只需将服务器配置为仅接受本地连接。

你试过启用中继吗?

找到IIS6管理器(我发现搜索IIS可能返回2个结果)转到SMTP服务器属性然后“访问”然后按继电器按钮。

然后你可以选择全部或只允许某些ip,如127.0.0.1

SMTP中继

Tx Natim,你说的对我有用。 现在让我们的Intranet应用程序使用集成的auth与我们的Exchange 2007服务器:

Dim msg As New MailMessage()
Dim smtp As SmtpClient

msg.From = New MailAddress(strFrom)
msg.To.Add(strTo)
msg.Subject = strSubject
msg.Body = strBody

smtp = New SmtpClient("ServerName")
smtp.UseDefaultCredentials = True
smtp.Send(msg) 

如果您想在localhost中测试电子邮件,只需下载安装剪纸工具https://papercut.codeplex.com/

并将主机名更改为localhost,如下所示。 Papercut捕获使用localhost发送的所有电子邮件。

  smtpClient.UseDefaultCredentials = false;
    smtpClient.Host = "localhost";
    smtpClient.Port = 587;
    smtpClient.Credentials = new NetworkCredential(uname,pwd);
    smtpClient.EnableSsl = true;

暂无
暂无

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

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