ASP.NET MVC 5之邮件服务器与客户端
一、概述
首先必须清楚smtp才是提供邮件服务器的核心,收发邮件全靠smtp。不信你关掉hmailserver的pop3和imap,服务器照样可以收发邮件。pop3和imap只是邮件服务器实现的用于提供邮件客户端收取和管理邮件的两种协议,其中pop3协议只能收取服务器上的邮件,而imap协议可供客户端管理服务器上的邮件。目前几乎所有的第三方服务器的smtp都限制了发送配额等各种限制,并且几乎所有的邮件服务器都会检测发送方的域名和ip是否匹配。简单说就是别用第三方的进行测试,也别用自建的locahost发邮件测试,到底怎么测试呢?在非服务器环境下的邮件发送测试,有3种方案:
(1)模拟邮件的发送,不真正发送邮件。把邮件发送的内容写到日志文件等。
(2)模拟邮件的接收。使用localhost的smtp发送邮件。使用smtp4dev等拦截接收邮件,配合windows live mail和windows mbox viewer等可以读取eml格式的客户端,可以得到正确格式的邮件,收件方不会接收到邮件。
(3)在有域名和服务器可用的前提下,设置域名mx并搭建邮件服务器,通过邮件服务器的smtp进行邮件的实际发送。可以通过收件方服务器的域名ip检测,但要配置好安全措施防止邮件服务器被利用。
发送邮件可以使用windows server 2008+的系统的smtp功能,但没有提供对pop3和imap协议的系统支持,因此无法使用客户端访问邮件服务器。
如果我们希望使用客户端访问邮件服务器,在windows server 2008+环境下和开源免费的前提下,目前最好的选择就是hmailserver。如果你打算切换到hmailserver,一定要记得停用系统的smtp服务。否则hmailserver无法监听smtp端口,就无法接收到邮件。
二、mx设置
mx设置的参考如下,在域名解析中配置:
在服务上检查mx设置:
三、使用系统的smtp功能发邮件:
以windows server 2008为例,smtp功能的安装和服务的设置比较简单,这里省略。
1.域名配置:
首先是域名:在传递—>高级中 设置
2.ip配置
3.通过.net发送邮件:
web.config配置:
发送代码:
四、使用hmailserver收发邮件:hmailserver的安装和汉化自行搞定。这里一定要记住,使用hmailserver必须同时使用smtp和pop3,并且停止系统自带的smtp服务,否则无法接收邮件。1.添加域名:
2.添加账号:
3.配置邮件递交:
4.绑定ip:
5.配置ip范围:图中的auto-ban是由于我的密码过于简单并且在测试时的失败造成hmailserver自动屏蔽了服务器的ip,因此需要对该条限制进行配置。其他情况下不需要这个步骤。6.测试配置:
五、web邮件客户端客户端收发邮件可以采用cs模式的outlook express和foxmail,也可以采用163等bs模式的web邮箱提供的代收功能接收邮件。hmailserver提供了邮件服务器的发送和接收邮件功能,并同时提供pop3和imap协议的支持。开源免费的web邮件客户端,非.net的web邮件客户端实现较多,常用的如php的squirrelmail和roundcube。.net下的web邮件客户端少的可怜,但实现相关收取协议组件库还是不缺的。有时候需要在后台中集成邮件的管理功能,可以直接使用这些组件,如imapx等。1.集成邮件列表功能:2.标记已读未读:
3.删除邮件:
4.界面参考:
发送邮件和回复邮件涉及到通讯录、草稿和附件等要相对复杂一些,看需求是否有必要集成完整的功能,毕竟组件库已经提供了完整的功能,我们只需要对其包装和调用,配合界面操作就可以了,其中构建一个完善的支持ajax的web客户端界面的难点不在后台实现上,而在前台,与主题关系不大。有兴趣的可以自己实现。