我正在用C#,.NET和MVC构建一个表单。 在后端,表单将通过电子邮件发送其内容。 为了进行测试,我使用的是本地安装hMailServer
。
最初我将HMS设置为localhost.localdomain
运行;"本地主机名"的SMTP设置是localhost
。 我尝试在端口 587 上连接到它,如下所示:
SmtpClient smtp = new SmtpClient
{
Host = WebConfigurationManager.AppSettings["emailServer"],
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = true,
Credentials = networkCredential
};
我已经仔细检查了凭据是否是我设置的邮件服务器用户和密码。 他们在这里,以防这有帮助:
<add key="emailUser" value="user@localhost.localdomain"/>
<add key="emailPassword" value="~~~"/>
<add key="emailServer" value="localhost.localdomain"/>
使用 localhost.localdomain
时,发送邮件会引发异常,外部消息:"发送邮件失败",内部消息:"无法解析远程名称:'localhost.localdomain'"。
所以我尝试使用companyname.com
. 发送邮件会引发异常,外部消息:"发送邮件失败",内部消息:"无法连接到远程服务器"。
我希望我的HMS域配置错误或协议配置错误。 HMS文档对我没有帮助,但我可能不知道要寻找什么。
伊塔hMail 服务器状态显示一周内处理的邮件为零,尽管我进行了所有测试。
以下是我为开发配置它的方式:创建的主机文件条目如下所示:
local.myname.com 127.0.0.1
完成后,我打开命令提示符并确保它已更新。我通过以下方式对其进行了测试:
特雷塞特 local.myname.com
如果更新了主机文件条目,则应返回 127.0.0.1。
接下来,在 hmail 中,我们需要创建一个新域: local.myname.com 并添加一个带有密码的电子邮件地址。 因此,您的电子邮件地址类似于 admin@local.myname.com。
接下来,您需要提前仔细检查协议配置和 IP 范围与身份验证配置。
就我而言,我配置为阻止外部传入和传出电子邮件,并跳过了内部电子邮件的身份验证。所以基本上这就是您可以提前做的 - IP 范围配置。然后随着开发,您只需要确保所有电子邮件都是 *@local.myname.com 并且它应该可以工作。
还可以启用 hmail 登录以获取有助于解决问题的详细错误,因为 hmail 的帮助文档可以直接很好地处理其错误代码。
hMail实际上是真实电子邮件的不错选择。对于开发,我建议使用 smtp4dev。