推荐一篇好文章,如何构建.NET邮件服务器

The Serverside .Net上有一篇介绍如何用.NET技术构建邮件服务器的文章,值得一读。记得自己原来写过的那个SMailer(C++ Wrapped Classes For Mail Sending),所以看到这篇文章就觉得很亲切,不少内容当时我都有所涉及,只是所用技术不同而已。

轻松驾驭Socket — 一个简单的.NET电子邮件服务器(Riding on Sockets - A Simple .NET Email Server)

归纳一下,该文有如下三个特点:

-关于SMTP协议的简单介绍,比较完整,比起看RFC文档来要容易多了(当然SMTP本身也不甚复杂)。

-使用.NET Framework进行Socket编程的基本常识,包括所用到的类以及工作流程。

-构建Email Server的一个通用解决方案。结构清晰的设计同样可以拓展到其他基于Socket的应用。

Introduction

Sometimes, it's necessary to remember the roots, the place where it all began. The World Wide Web and electronic mail have become very common to our life, and it's our duty to tell the story behind their creation to our children and grandchildren. More importantly, as the importance of a technology increases, so does its usage--and thus the need that we'll need to understand what's happening at the protocol level in order to debug and/or diagnose problems. To do that, we need to understand how to work with sockets at the most primitive level, and to speak and understand the SMTP and HTTP protocols "in the raw". Fortunately, Internet protocols aren't all that hard to understand. As I took a closer look at SMTP and HTTP for the first time, I was surprised how simple they are.

You might be a bit scared of such low-level exploration. Maybe you know the Z39.50 protocol, which often is used by libraries to offer an interface for searching their inventory of books and articles. This protocol is very tricky and almost completely incomprehensible. However, internet protocols are deliberately written to be human readable, making it relatively easy to know their basics. The .NET Framework is a very good friend to explore the mysteries of these socket based protocols. Going through an email server sample will address both sides: SMTP basics and .NET Framework programming.

The following email server will be able to handle multiple connections for receiving emails. In order to keep it simple, only a subset of SMTP commands will be implemented, but it’s easy to extend and finish the software.

全文见:http://www.theserverside.net/articles/showarticle.tss?id=SocketProgramming

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 开发的邮件服务器 Features supports pop3 smtp imap etc. supports ssl/tls for pop3, smtp and imap. supports multi mail vitural server, can bind multi domains. supports run as windows service, winform application with or without tray icon control. supports remote management using mailservermanager.exe supports mail recycle bin supports plugins using api interfaces Build and release download source code or use the releases i provided. if from source code you should run afterbuild.bat after build the solution successfuly then you get the debug or release version from application folder. Installation run MailServerLauncher.exe to install as windows service or just run as desktop application with or without tray icon. Configuration run MailServerManager.exe at the machine runs mailserver service or app. Connect to server press connect button from menu. type server localhost or 127.0.0.1 or leave it empty type username Administrator with case sensitive type password emtpy press ok to connect with saving or not Add virtual server type name and select storage api [your vitural server]>system>general, add dns servers for query mailto's domain mx record. [your vitural server]>system>services, enable smtp and pop3 services and set ipaddress binding with or without ssl/tls. the host name is required when set bindings. eg. bind smtp service to smtp.[your.domain] + IPAddress.Any [your vitural server]>system>service>relay, 'send email using DNS' and set at least a local ipaddress binding for email sending. the name of the binding here only a name,not mean domain. [your vitural server]>system>logging, enable logging for all services when something error you can see the details from 'Logs and Events' node [your vitural server]>domains, set email host domain, eg. if your email will be xyz@abc.com then the domain should be abc.domain, description is optional [your vitural server]>security, !!! important, add rules for your service to allow outside access like email client. eg. add a rule 'Smtp Allow All' for smtp service with ip allows between 0.0.0.0 to 255.255.255.255 to enable smtp service for outside access add 'Pop3 Allow All' and 'Rlay Allow All' like that too. [your vitural server]>filters, there are two types of filter named 'DnsBlackList' and 'VirusScan' its configurable by run it's executable from mail server install path. Domain name resolution Add smtp.[your.domain], pop3.[your.domain], imap.[your.domain] resolution to your server public ip address with A record or to your server domain with CNAME record. mx record is optional if [your.domain] has a A record.if not, you shoud add a mx record point to your server ip. Remote management to enable remote management you must add ACL to allow mail server managers connect from outside network. use MailServerAccessManager.exe to add management users or just use administrator. add rules to allow access from specific IPs or ip ranges The users here only for management cases.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值