MVC 应用程序无法通过本地 HMailServer 发送邮件



我正在用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。

相关内容

  • 没有找到相关文章

最新更新