我正在使用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服务器状态在一周内显示零处理的消息,尽管我都进行了测试。
答案 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。