SMTP协议简介 2001-07-09· ·--··vbeden SMTP被用来在因特网上传递电子
邮件。文件RFC821规定了该协议的所有细节。但是你只须记住下面的内容--该协议的基本
命令和方法就行了。 协议的原理很简单。无非是一个客户端计算机向
服务器发送命令,然后服务器向客户端计算机返回一些信息。客房端发送的命令以及服务器的回应都是字符串,你并不需要特别的软件就能读出它们。如果你仔细看过Winsock Terminal示例程序的源代码,你就会发现这一点。现在让我们用这个示例程序来向自己发一封电子邮件吧。 运行示例程序,单击\"Connect\"按钮,在\"Connect to\"对话框中输入你的电子邮件服务器的地址,选择SMTP选项。最后按\"Connect\"按钮。如果连接成功,Winsock控件会产生Connected事件,在状态栏中也可看到连接成功的信息。在主文本窗口中你将看到从服务器返回的文本。该文本包含一个三位数的代码及描述,例如: 220-nscinforu Sendmail 8612/869 ready at Wed, 22 Apr 1998 22:54:41 +0300 220 ESMTP spoken here 不必太过留意这些描述。因为这些描述可能会因服务器而异。你只须要知道代码所代表的意思就行了。代码220表示成功建立连接,服务器等待你的第一个命令。 向服务器传递的第一个命令是HELO 该命令包含一个参数,即你的邮箱名。 HELO oleg 注意: 在RFC821中,HELO是一个可选择性命令,如果服务器不要求该命令的话,你可以把它忽略掉。 如果命令成功,服务器会返回一个代码为250的回应。下一步用MAIL FROM命令告诉服务器你想发一封邮件。该命令以发信人的邮件地址为参数。 MAIL FROM: oleg@vbipcom 发完命令后,如果服务器返回一个代码为250回应,你就可以向服务器发送RCPT TO命令了。该命令以收信人地址为参数,一看便知是告诉服务器你想将邮件发到收信人地址处。 RCPT TO: somebody@domaincom 如果你想将邮件发给多个收件人的话。你需要多次使用RCPT TO命令,对每个命令,服务器都会返回代码为250的回应。 现在你可以向服务器发送邮件正文了。用DATA命令告诉服务器以下的内容为邮件正文。在你从服务器收到代码为354的回应后,你就可以发送邮件正文了。邮件按行发送,每行邮件以一个无回车的换行符结束(在VB中就是vbLf)示例程序知道何时使用换行符,何时使用回车加换行符。所以你只须按回车键就行了。下面是一个例子: Subject: My first e-mail message First line of a message Second line 注意上面最后一行的最后一个字符是一个小数点。这是正文结束的标志。用VB代码表示就是vbLf & \"\" & vbCrLf 服务器收到这个标志后,就会立即向你返回一个代码为250的回应以及该邮件的唯一ID号。 250 WAA10568 Message accepted for delivery 任务完成了,你可以继续发送下封邮件,也可以断开同服务器的连接。如果要断开同服务器的连接就用QUIT命令。在这种情况下,服务器会返回一个代码为221的回应并断开连接。 QUIT 221 nscinforu closing connection
我的服务器用的是小鸟云的,性能稳定,访问很流畅。你的电脑没有这些配置也可以收发邮件,那是因为你的电脑里只是一个邮件的客户端,而邮件服务器别人都已经给你配置好了。
配置邮件服务器的目的就是为了让你的客户端能够正常的收取别人发给你的邮件,并把你发给别人的邮件准确的发送出去。
配置这些服务器就叫服务器管理员。
延伸开来说,你的电脑电脑上运行的是个邮件客户端,主要的邮件服务器在互联网上,这个就是典型的C/S架构;如过你通过浏览器在收发邮件,那就是是个典型的B/S架构。
IT业是个很庞大的产业,其中的技术鸿沟大到难以想象;一个程序员很可能完全不明白在底层CPU是如何存取内存的,而一个CPU设计师也很可能完全不明白PHP是如何从Mysql查询数据的;所以对一个普通用户而言黑箱是不可避免的,某种程度来说甚至是一件好事。
评论列表(0条)