| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
|
你或许已经有一个internet的电子邮件帐号,如果这样,你的邮件阅读工具,可能是和www 浏览器捆绑在一起的软件,或者是单独的软件如eudora,要求你输入一个有关smtp服务器 的信息。它就是你所使用的dns服务器的域名。这里有一些internet服务提供商(isp)供商的smtp 服务器域名: ..与服务器建立一个tcp/ip会话 一般smtp服务器在25号端口(port25)监听连接请求。因此,和一个smtp主机建立一个tcp/ip 连接就是建立一个和25号端口连接的套接字(socket)。下面这段java程序试图建立一个和 域名为"smtp.tjd.com"的主机的连接: 1 import java.net.*; 7 try { 这段代码在建立tcp/ip连接的同时创建一个dataoutputstream对象和一个datainputstream 对象,我们以后将会使用它们从smtp服务器发送和接收数据。 ..在服务器上登录 和在unix系统或者数据库系统上登录不同,你无须在一个smtp服务器上真正地登录,因为 这里没有确认/授权的过程,根本不需要真正登录。你只是简单地让服务器能识别你,这样才 有资格成发送邮件。这一步其实不真正需要,但是不能忽略它。 当你第一次和服务器连接时,服务器给你发送确认它自己和它的smtp版本号两行数据。 我们不关心这些数据,我们只是读入它们并且将其忽略。在我们读入这些数据后,服务器将 把我们推到"司机"的座位上然后等待和回答命令。下面是用java语言实现的登 录过程: 1 string strbuf; helo命令让服务器识别你的身份,rset命令重置smtp服务器的状态。如果一切顺利,rset 命令不是必须的。但是因为事情并非总是进行顺利,而rset是一个发送和执行起来很" 便宜"的命令,因此首先执行这条命令是一个很好的方法。 注意在每条write字节s()语句后的readline()语句,smtp服务器为你发送的每条命令 返回一个状态信息。状态信息以一个3字节的数字开始,它被用来判断命令执行成功与否。 rfc821对此有详尽的解释。 .写明收信人的地址 下一步我们准备填写收信人的地址。和所有礼貌的信件相似,我们应该提供给邮件传送 代理和接收者地址同样清楚的回信地址。下面java的代码实现了这个功能: 1 dos.writebytes("mail from:\n"); ..撰写邮件的内容 现在我们准备创建邮件最有趣的部分--数据区域。数据区域包括两个子区域: 1.邮件客户程序阅读的头部信息 数据区域的头部信息并不是必须的,但在你使用收信客户程序看信时,它能使你的邮件 看起来更美观。头部信息是邮件内容的一个概括,它使邮件更容易管理。 数据区域头部信息和办公室间的备忘录的开头相似,可以这样发送: 1 dos.writebytes ("data\n"); 注意,我们在发送"data"命令后读入且只读入一行。当你发送"data" 命令的时候,服务器可能回送下面形式的消息作为应答:"354entermail,endwith "."onalinebyitself"。这意味着如果smtp服务器没有看到信件的 结尾,不会通过套接字发送任何数据。 为了能传送序列化编码对象,我们把它封闭到邮件内容的mime部分。mime部分最开始是 纯文本,用mime的语法来描述,就是"content-type:text/plain。"。在文本部 分我们将发送若干指令,用来指明一起发送的对象和关于它的简单说明。下面的代码实现 了这种功能: 1 string strboundary = "simpleboundary"; 现在我们该做费了这么多的口舌一直想做的事情,将序列化的对象附在smtp邮件内容上。 请记住,邮件内容每行不能超出1000个字节。对于有多个部分的mime则有更多的限制,即每 行不能超出74个字节的二进制编码。这意味着我们必须声明一个string对象,它包含序列 化的,基于base64编码对象,然后我们以每次74个字节的方式将这个string对象写入smtp 套接字。 1 dos.writebytes("--" + strboundary + "\n"); 6 int ilines = strobject.length() / 74; 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:你的email服务器准备好应对账号搜集攻击了吗 下一篇:个人smtp服务器的配置 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||