0

我正在用 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 文档对我没有帮助,但我可能不知道要查找什么。

尽管我进行了所有测试,但ETA hMail 服务器状态显示一周内处理的邮件为零。

4

1 回答 1

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。

于 2014-12-29T15:11:21.547 回答