蛙蛙推荐:自己架设一个邮件服务器

时间:2024-03-02 08:18:55

 

买不起ex的小公司可以试试这个方案(如果windows也买不起,那就只好用linux和qmail了),有些人说配了IIS的SMTP不能收邮件,其实还得装POP3服务。
 

本文适用于安装了windows2003操作系统的朋友,windows2000的IIS自带smtp服务,不过不知道有没有POP3服务哦,本来想再开发个SharePoint的查看邮件的webpart以及想办法让windows2003自带的smtp支持邮件组后才发此贴,结果这两个功能我想来想去不好解决,所以就先发了吧,我记得以前做Asp的时候,书上都写过用fso读取c:\mailroot下的邮件的例子,现在都找不到了,也许很少有人用windows自带的邮件功能吧。
不下面是基本配置操作
1、安装smtp和pop3服务,在添加删除程序的添加删除windows组件里选择“电子邮件服务”,详细信息里全勾上,POP3服务就安装上了。在“应用程序服务器”的详细信息里双击IIS,再把SMTP服务的勾打上,这样SMTP服务也安装上了。
2、配置pop3服务器,先建立个域,“开始→管理工具→POP3服务”,点击右边的添加新域,输入一个域名,比如fetionmm.com,但是首先要把fetionmm.com这个域名的MX记录解析到你的windows2003主机的外网IP上。完了就可有在左边选中fetionmm.com域,再右边点添加邮箱了,你可以选中添加邮箱的时候同时也添加用户,这样就会在本地用户管理里添加相应的用户,默认这些用户都在一个pop3 users组里,这样一来就能收邮件了。
3、配置smtp服务器,在IIS里展开SMTP服务器的节点,在属性的常规页里输入一个你的服务器的公网IP就可以了,如果就一个IP,不设置也行。然后就可以用outlook来收发邮件了,邮件客户端的smtp地址和pop3地址都是你的服务器的公网地址,用户名和密码就是在POP3里建立的windows用户的用户名和密码,当然以后改密码的话只好让管理员给你改了,或者做一个web界面来让用户修改密码。

备注:在pop3管理器的属性启用SPA ,outlook2003才能收邮件(outlook也得打上SPA的勾),否则不行,这是我测试得出的结论,不知道为什么,打了使用了安全密码身份验证,在POP3协议里就不能发明文密码了,所以你用telnet命令行模式测试pop3的时候就不太好做了。

下面我们来测试SMTP和POP3服务,先测试SMTP,加粗为输入,普通体为输出(密码我人为混淆过)

220 xxxxx Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at  Tue,
26 Aug 2008 21:31:06 +0800
helo fetionmm.com
250 xxxxx Hello [221.110.153.173]
ehlo fetionmm.com
250-xxxxx Hello [221.110.153.173]
250-AUTH=LOGIN
250-AUTH LOGIN
250-TURN
250-SIZE 2097152
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250 OK
auth login
334 VXNlcm5hbWU6
bXMtaHVoYW8=
334 UGFzc3dvcmQ6
xXxxxxxxxXx=
235 2.7.0 Authentication successful
mail from: <huhao@fetionmm.com>
250 2.1.0 huhao@fetionmm.com....Sender OK
rcpt to: <huhao@fetionmm.com>
250 2.1.5 huhao@fetionmm.com
data
354 Start mail input; end with <CRLF>.<CRLF>
From: huhao@fetionmm.com
To: huhao@fetionmm.com
Subject: this is a test mail by huhao

hi,huhao
ni shou dao wo de ce shi youjian le ma?

.
250 2.6.0 <XXXXXhMJpzlo7Qgd100000004@xxxxx> Queued mail for delivery

 

以下是POP3的抓包,因为我不懂POP3的AUTH和APOP算法,只好抓包了

+OK Microsoft Windows POP3 Service Version 1.0 <10729287@xxxxx> ready.

AUTH

+OK

NTLM

.

AUTH NTLM

+OK

TlRMTVNTUAABAAAAB7IIogkACQA3AAAADwAPACAFAs4OAAAAD01TLUhVSEFPLUZFVElPTldPUktHUk9VUA==

+ TlRMTVNTUAACAAAADgAOADgAAAAFgoqizXHePkgX3GcAAAAAAAABGAAAABQLODgAAAA9DAE0AQwBDAEkATQBQAAIADgBDAE0AQwBDAEkATQBQAAEADgBDAE0AQwBDAEkATQBQAAQADgBjAG0AYwBjAGkAbQBwAAMADgBjAG0AYwBjAGkAbQBwAAAAAAA=

TlRMTVNTUAADAAAAGgAAAB4AHgBIAAAAGgAaAGYAAAAeAB4AgAAAAAAAAADOAAAABYKIogUCzg4AAAAPTQBTAC0ASABVAEgAQQBPAC0ARgBFAFQASQBPAE4AQQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBNAFMALQBIAFUASABBAE8ALQBGAEUAVABJAE8ATgAPgmnlLk5uMQAAAAAAAAAAAAAAAAAAAACn5XlcLWEqo2ZbVBjuKSs0+tRsUBnUTRA=

-ERR Command not valid

AUTH NTLM

+OK

TlRMTVNTAAAAAAAAAAAAAFAs4OAAAADw==

+ TlRMTVNTUAACAAAADgAODAE0AQwBDAEkATQBQAAIADgBDAE0AQwBBDAEkATQBQAAQADgBjAG0AYwBjAGkAbQBwAAMADgBjAG0AYwBjAGkAbQBwAAAAAAA=

TlRMTVNTUAADAAAAGAAAABYKIogUCzg4AAAAPbQBzAC0AaAB1AGgAYwBOAJFPwJN0QCyOAAAAAAAAAAAAAAAAAAAAAAUrMtnyZdKpIu1H2NM1cJ5rK2C3aX3rew==

+OK User successfully logged on

STAT

+OK 0 0

QUIT

+OK Microsoft Windows POP3 Service Version 1.0 <10729287@xxxxx> signing off.

补充: 

1、关于SMTP身份验证,要同时启用匿名访问和基本身份验证
在SMTP服务器的“属性-访问-访问控制-身份验证”里启用匿名访问和基本身份验证,并把默认域设置为fetionmm.com。
启用匿名访问是因为我们要收其他域的邮件,如果关闭匿名访问,别人用gmail或者amigo邮箱就发送不到你的邮箱了。
启用基本身份验证是我们需要对要利用我们的SMTP往其他域发送邮件的人进行身份验证。
2、中继限制设置
在“属性-访问-访问控制-中继”里设置拒绝所有IP的虚机服务器使用本机作为中继,并且把最下面的“通过了身份验证的用户忽略上表,都可以中继”的复选框。
以上设置是为了让通过基本身份验证的用户可以通过这个SMTP向其它的域发送邮件。

经过以上两步,我们的SMTP就可以收其它域的邮件,也可以给其它域发送邮件了,同时阻止了没有通过身份认证的人不能用咱们的SMTP服务器发送垃圾邮件。