如何编写SMTP邮件服务器

原创 2001年05月14日 19:14:00


            如何编写SMTP邮件服务器 

    许多时候,我想不通为什么不能直接将信件送到对方(POP或IMAP)服务器上,
为什么非要通过一个莫名其妙的SMTP邮件服务器转交一次,实在不服气,如果使
用UNIX,这个问题就很好解决,用sendmail就能完成递送任务,但在Windows下
呢?同样的,一定也有办法饶开SMTP Server直接递送到对方的远程邮局服务器
上,难得住别人,难得住我们程序员吗?分析相关协议(RFC2645,RFC821,
RFC1846,RFC1939,RFC1725,RFC1730-RFC1733 etc.),我们会知道要完成直接递
送其实相当简单。
    首先我们看一下Email的递送过程:
    Email(Encode) -> a SMTP Relay Server -> Remote SMTP Server(远程邮局)。
非常简单,邮件编码后被递送到一个SMTP转交服务器上,该服务器对信件分检
(到同一邮局的被放在一起)后,根据优先级以及信件的先后次序被发送到远程
邮局的SMTP服务器上。换句话说,只要我们知道了SMTP转交服务器是如何确定远
程邮局SMTP服务器的地址的,就可以轻松地将饶开SMTP Relay Server直接递送到
远程邮局服务器。
    SMTP Relay Server是如何确定远程邮局服务器的地址的呢?如果你熟悉域名解析,就知道是怎么回事了,我们知道电子邮件的地址由两部分构成postbox@address.com
邮箱(postbox)和地址(address.com),给域名服务器发送指令查询"address.com”
的远程邮局服务器的地址即可找到远程邮局SMTP服务器的IP 地址,该指令查询是被
称作MX(Mail Exchange)邮件交换服务器的地址查询。远程邮局SMTP服务器的地址可
能不止一个,这时,你可根据信件优先级的不同,将对应优先级的信件发到对应地址
的远程邮局SMTP服务器,当然,你也可以不管三七二十一,随便选一个SMTP服务器发
送,见后附“域名解析结果样例”。简单吧。这下,自己编写一个SMTP Server不难了
吧!

问题:头ID是个麻烦的事,有时会产生Invalid Head ID 5811的错误。

附:域名解析结果样例

Answer List

Resource name is : sina.com
Type is : MX Class is : IN
MX Priority : 10 MX Server : mailcn.sina.com

Resource name is : sina.com
Type is : MX Class is : IN
MX Priority : 15 MX Server : mail.sina.com.cn


Authority List

Resource name is : sina.com
Type is : NS Class is : IN
Domain name is : resolver.sina.com

Resource name is : sina.com
Type is : NS Class is : IN
Domain name is : ns2.sina.com


Additional Response List

Resource name is : mailcn.sina.com
Type is : A Class is : IN
IP Address is : 202.106.184.233

Resource name is : mail.sina.com.cn
Type is : A Class is : IN
IP Address is : 202.106.187.150

Resource name is : resolver.sina.com
Type is : A Class is : IN
IP Address is : 206.204.114.135

Resource name is : ns2.sina.com
Type is : A Class is : IN
IP Address is : 209.133.24.135


(摘自Chinaasp)

如何编写SMTP邮件服务器

 许多时候,我想不通为什么不能直接将信件送到对方(POP或IMAP)服务器上,为什么非要通过一个莫名其妙的SMTP邮件服务器转交一次,实在不服气,如果使用UNIX,这个问题就很好解决,用sendmai...
  • zhanghefu
  • zhanghefu
  • 2007年01月25日 17:18
  • 1001

Windows Server 2012 R2 设置 smtp 服务器

安装 SMTP 服务器 以下是安装 SMTP 服务器功能的步骤: 打开“服务器管理器”:单击键盘上的 Windows 按钮。输入“服务器管理器”。在“结果”窗口中,单击“服务器管理器”。。 单...
  • realghost
  • realghost
  • 2014年10月24日 14:15
  • 21925

配置邮件服务器(SMTP简单步骤)

配置邮件服务器(简单介绍)
  • bmzydream_007
  • bmzydream_007
  • 2011年05月26日 08:11
  • 3796

自有域名、IIS7,搭建SMTP邮件服务器

公司自有域名,已购买邮件服务。 现涉及邮件群发业务,购买的邮件服务不足以承载群发事务,尝试使用免费邮箱服务或host为邮件服务器提供商(smtp host主机),均无法实现批量发送邮件服务。现在自有...
  • smartt
  • smartt
  • 2015年09月11日 14:35
  • 4436

配置php的smtp邮件服务器

        一个发送E-MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了,虽然它很简单,一个邮件脚本有时会令程序员非常沮丧.PHP中有一个叫做mail()的函数,它只需要知道...
  • neubuffer
  • neubuffer
  • 2010年07月14日 23:08
  • 6465

云服务器Windows Server2012 配置SMPT和POP邮件服务器并进行邮件发送

一、安装SMPT服务器 1.添加角色和功能 2.勾选SMTP服务器 二、配置SMPT服务器 1.设置SMPT服务器的属性 右键SMPT-->属性 2.设置域名 ...
  • luchengtao11
  • luchengtao11
  • 2017年05月17日 13:27
  • 2992

搭建邮件服务器之SMTP发送服务器(一) 写在前面

您可能想要拥有自己的SMTP服务器有很多原因。但是,许多企业将电子邮件发送给第三方服务也有许多原因。拥有自己的SMTP服务器的最大问题之一是设置整个事情是非常困难的,以获得稳定的传输速率。 这是...
  • u011628250
  • u011628250
  • 2017年06月10日 09:11
  • 2738

Domino SMTP邮件服务器设置实例

 启动Administrator进入到配置附签 启用SMTP侦听任务如下图所示 2)进入消息处理->网络域 如下图所示(如果没有设置右边为空) 3)增...
  • Gavid0124
  • Gavid0124
  • 2014年07月22日 17:37
  • 1489

Linux搭建SMTP发送邮件服务器

该例子使用的是Centos6系统作为SMTP邮件服务器其他的发行版配置基本一样,只是命令会有些不同...
  • gyxuehu
  • gyxuehu
  • 2017年11月11日 22:18
  • 935

ubuntu自己搭建邮件服务器

http://www.ixpub.net/thread-672704-1-1.html Ubuntu+Sendmail+Dovecot+Openwebmail搭建邮件服务器  1.安装ap...
  • psiitoy
  • psiitoy
  • 2014年04月08日 23:34
  • 4940
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何编写SMTP邮件服务器
举报原因:
原因补充:

(最多只允许输入30个字)