目录:

一、概述

二、MX设置

三、使用系统的SMTP功能发邮件

四、使用hMailServer收发邮件

五、Web邮件客户端

一、概述

首先必须清楚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模式的等BS模式的Web邮箱提供的代收功能接收邮件。hMailserver提供了邮件服务器的发送和接收邮件功能,并同时提供POP3和IMAP协议的支持。开源免费的Web邮件客户端,非.NET的Web邮件客户端实现较多,常用的如PHP的SquirrelMail和RoundCube。.NET下的Web邮件客户端少的可怜,但实现相关收取协议组件库还是不缺的。有时候需要在后台中集成邮件的管理功能,可以直接使用这些组件,如ImapX等。
1.集成邮件列表功能:
2.标记已读未读:
3.删除邮件:
4.界面参考:
发送邮件和回复邮件涉及到通讯录、草稿和附件等要相对复杂一些,看需求是否有必要集成完整的功能,毕竟组件库已经提供了完整的功能,我们只需要对其包装和调用,配合界面操作就可以了,其中构建一个完善的支持Ajax的Web客户端界面的难点不在后台实现上,而在前台,与主题关系不大。有兴趣的可以自己实现。
 
 

ASP.NET:邮件服务器与客户端的更多相关文章

  1. WinMail邮件服务器(客户端)环境搭建与配置

    WinMail邮件服务器(客户端)环境搭建与配置      一.在搭建WinMail邮件服务器(客户端)之前必备            (1).在虚拟机上安装两个干净无毒的操作系统          ...

  2. asp.net 获取服务器及客户端的相关信息

    1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName获取用户信息:Page.User获取客户端电脑名:Page.Request.UserHostName ...

  3. Asp.Net Core采用MailKit部署到Linux Docker连接邮件服务器报错

    前段时间看文章了解到发邮件的SmtpClient已经过时了,微软官方推荐大家用其他解决方案,例如MailKit. https://docs.microsoft.com/zh-cn/dotnet/api ...

  4. C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法

    C#调用接口注意要点   在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...

  5. 基于asp.net MVC 的服务器和客户端的交互(一)

    架构思想 三层架构 提出了一种基于ASP.NET开发方式的三层架构的Web应用系统构造思想.其基本内容是:将面向对象的UML建模与Web应用系统开发 相结合,将整个系统分成适合ASP.NET开发方式的 ...

  6. Ajax跨域问题及解决方案 asp.net core 系列之允许跨越访问(Enable Cross-Origin Requests:CORS) c#中的Cache缓存技术 C#中的Cookie C#串口扫描枪的简单实现 c#Socket服务器与客户端的开发(2)

    Ajax跨域问题及解决方案   目录 复现Ajax跨域问题 Ajax跨域介绍 Ajax跨域解决方案 一. 在服务端添加响应头Access-Control-Allow-Origin 二. 使用JSONP ...

  7. ASP.NET 邮件发送

    ASP.NET 邮件发送用NET的MAIL类即可实现. 邮件发时,为不影响进程,所以采用多线程实现比较好. /// <summary> /// 多线程邮件发送 多线程需注意不要引用到外部方 ...

  8. 烂泥:Postfix邮件服务器搭建之软件安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postf ...

  9. 烂泥:Postfix邮件服务器搭建之虚拟用户配置

    virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...

随机推荐

  1. javascript中原型,构造器,还有E5扩展的默认成员

    对象原型所具有的基本特征: 1.toString() 2.toLocaleString() 3.valueOf() 4.constructor() 5.propertyIsnumerable() 6. ...

  2. JSP自定义业务标签

    自定义标签: package cn.hv.tag; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; ...

  3. web开发,click,touch,tap事件浅析

    一.click 和 tap 比较 两者都会在点击时触发,但是在手机WEB端,click会有 200~300 ms,所以请用tap代替click作为点击事件. singleTap和doubleTap 分 ...

  4. Python开发一个WEB聊天室

    项目实战:开发一个WEB聊天室 功能需求: 用户可以与好友一对一聊天 可以搜索.添加某人为好友 用户可以搜索和添加群 每个群有管理员可以审批用户的加群请求,群管理员可以用多个,群管理员可以删除.添加. ...

  5. JDK常用命令

    转自:https://www.cnblogs.com/saiQsai/p/10353044.html 1.jps 查看java进程,得到进程ID:7854 作用等同于:ps -ef | grep ja ...

  6. 点赞功能实现 $(tag).css('属性', '样式')

    1. 创建标签 document.createElement() 2.$(tag).css('属性', 样式) 赋予标签属性样式 3.设置定时器 改变位置 大小 <!DOCTYPE html&g ...

  7. Linux Tomcat 7.0 管理员登录时"401 Unauthorized" 问题解决方法

    http://blog.csdn.net/u010359532/article/details/36055291 tomcat 7.0没有默认值,需要在conf的tomcat-users.xml中设置 ...

  8. 小学生福利V2.0.1

    211606320刘佳&211506332熊哲琛 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Plann ...

  9. 值类型 struct

    由于值类型存在装箱和拆箱的过程,所有导致在修改值类型对象内部数据时,有可能会出现一些与预想不同的结果. 比如 Point p = , ); Console.WriteLine(p); p.Change ...

  10. MYSQL TIMESTAMP with implicit DEFAULT value is deprecated.

    TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp se ...