目录:

一、概述

二、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. 简化Redis数据访问代码RedisTemplate

    ---恢复内容开始--- Redis数据结构简介: Redis可以存储键与5中数据结构类型之间的映射,这5中数据结构类型分别是;String(字符串),List(列表),Set(集合),Hash(散列 ...

  2. Java renameTo()重新命名此抽象路径名表示的文件

    Java手册 renameTo public boolean renameTo(File dest) 重新命名此抽象路径名表示的文件. 此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从 ...

  3. FilenameFilter 文件名过滤

    public static final FilenameFilter JSON_CONFIG_FILE_FILTER = new FilenameFilter() {         @Overrid ...

  4. IDA python使用笔记

    pattern='20 E5 40 00' addr=MinEA() for x in range(0,5):     addr=idc.FindBinary(addr,SEARCH_DOWN,pat ...

  5. HttpContext.Current并非无处不在

    阅读目录 开始 无处不在的HttpContext HttpContext.Current到底保存在哪里? HttpContext并非无处不在! 如何获取文件绝对路径? 异步调用中如何访问HttpCon ...

  6. uva-110-没有for循环的排序

    题意:看输出就懂了,暴力枚举题,字符串最大长度是8,所有长度等于8的长度是8!=1x2x3x4x5x6x7x8=40320,数据量比较小的.只是枚举的方向比较怪异,如下,长度等于3的串 a ab,ba ...

  7. sql日志

    这个像线程输出一样,并不是顺序的,主要靠线程名称来看.比如我13线程执行了一条语句. 第一条:蓝字那条就是我执行的语句. 第二条:368,thread-13那条就是我的参数. 第三条:369,thre ...

  8. Nginx Linux yum安装

    -- 安装>yum install nginx -y -- 查看>whereis nginx >目录>/usr/sbin/nginx 执行命令>/etc/nginx 配置 ...

  9. Layer Comps

    [What is Layer Comps] Designers often create multiple compositions(comps) of a page layout to show c ...

  10. python中os.system()的返回值

    [python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...