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

时间:2014-12-24 16:24:24

标签: asp.net-mvc email hmail-server

我正在使用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时,发送邮件会抛出异常,并显示以下消息:&#34;发送邮件失败&#34;以及内部消息:&#34;无法解析远程名称: &#39;的localhost.localdomain&#39;&#34;

所以我尝试使用companyname.com。发送邮件抛出异常,外部消息:&#34;发送邮件失败&#34;和内部消息:&#34;无法连接到远程服务器。&#34;

我希望我的HMS域配置错误或我的协议配置错误。 HMS文档对我没有帮助,但我可能不知道该找什么。

ETA hMail服务器状态在一周内显示零处理的消息,尽管我都进行了测试。

1 个答案:

答案 0 :(得分:1)

以下是我为开发配置的方式: 创建的主机文件条目如下:

local.myname.com 127.0.0.1

完成后,我打开命令提示符并确保它已更新。我通过以下方式测试了它:

tracert local.myname.com

如果主机文件条目更新,则应返回127.0.0.1。

接下来,在hmail中,我们需要创建一个新域:local.myname.com并添加一个带密码的电子邮件地址。所以你的电子邮件地址就像admin@local.myname.com。

接下来,您需要事先仔细检查协议配置和IP范围与身份验证配置。

在我的情况下,我配置为阻止外部传入和传出电子邮件,并跳过内部电子邮件的身份验证。基本上就是这样;你可以事先做些什么 - IP范围配置。然后通过开发,您只需确保所有电子邮件都是*@local.myname.com,它应该可以正常工作。

同时启用hmail登录以获取有助于解决问题的详细错误,因为hmail的帮助文档可以很好地直接处理错误代码。

hMail实际上是真正的电子邮件的好选择。对于开发,我建议使用smtp4dev。