协议的细节很有帮助的。 本文分两部分,第一部分是SMTP命令介绍(这个从别的地方抄的,嘿嘿);第二部分通过一个实例真正理解一下发送邮件的过程。 一:SMTP命令简介 服务器传输到另一个服务器使用的传输协议。SMTP是请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。响应包括一个表示返回状态的三位数字代码。SMTP在TCP协议25端口连接请求。 ESMTP(ExtendedSMTP),顾名思义,扩展SMTP就是对标准SMTP协议进行的扩展。它与SMTP服务的区别仅仅是,使用SMTP发信不需要验证用户帐户,而用ESMTP发信时,服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与SMTP方式没有两样。 HELO向服务器标识用户身份。发送者能,,但一般情况下服务器都能检测到。 EHLO向服务器标识用户身份。发送者能,,但一般情况下服务器都能检测到。 MAILFROM命令中指定的地址是发件人地址 RCPTTO标识单个的邮件接收人;可有多个RCPTTO;常在MAIL命令后面。 DATA在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以CRLF.CRLF结束 VRFY用于验证指定的用户/邮箱是否存在;由于 安全方面的原因,服务器常此命令 EXPN验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 HELP查询服务器支持什么命令 NOOP无操作,服务器应响应OK RSET重置会话,当前传输被取消 例如:安装Postfix的邮件服务器IP是192.168.0.1(蓝色字体内容由客户端输入,红色字体内容是服务返回的) 发到本系统中域名下的账户可跳过身份认证。 以上就是一个邮件发送的基本的命令。 再说一下邮件发送的基本过程: 如果你的邮件地址是[email protected],而你要用这个邮箱发送一封邮件到[email protected],你需要连接到服务器host.com上,当然这个连接可能需要认证,现在基本上都要验证,然后是发送邮件到服务器host.com上,关闭连接。在host.com上,你所发送的邮件进入发送队列中,轮到你要发送的邮件时,host.com主机再联系tohost.com,将邮件传输到服务器tohost.com上。 二:实例应用 //这个类其实就是一个基本的JavaBean,用于完成一些基本信息的设置,也可以不要这个东西,直接在程序中写明就可以,不过这样条理较清楚一些,而且修改也方便一些. 下一页 ・算法分析与设计之五大常用算法 ・开发必备Java加密 192.168.0.1是什么・嵌入式开发--ARM技术专题 ・C/C++指针,认真了解,灵活运用 ・.NET开发:C#实用基础教程 ・软件测试工具QTP学习专题 ・嵌入式开发单片机解决方案专题 |
不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流
GMT+8, 2025-11-6 16:53 , Processed in 0.029012 second(s), 15 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.