zoukankan      html  css  js  c++  java
  • 用telnet命令,SMTP发送邮件

    邮件的发送是基于smtp协议的。邮件客户端软件给smtp服务器传送邮件和smtp服务器之间传送邮件也都是基于smtp协议的。邮件客户端软件接受邮件是主要基于pop3协议的。

    下面介绍利用windows命令telnet 基于smtp协议发送邮件。

    这里是用sina油箱(错别字我可不想改了,明白就行了),其他油箱会存在这样或那样的小问题,而我的目标很简单,只是想尽快用telnet命令发送一封邮件感受一下。最开始试了 163的油箱,不过输入用户名密码后会响应:550 用户被锁定,很显然需要花时间去解决这个问题,虽然网上随便一查就会有一大堆解决办法,至于真假我没去试过,因为我现在的目标这个。后来也试了 gmail油箱,不过它的响应和书上的有点出入,所以也放弃了,最后选择了sina油箱,当然我也是新申请的。

    这里用到smtp协议的6个命令。6个命令就能发送邮件,有点不可思议。下面列举出所有:

    ehlo    见面当然得打招呼了,后面接任意名字

    AUTH    选择输入用户名密码的方式,sina的需要进行 base64 编码,后面将有转化的类提供,很简单

    mail from:    说明邮件来自哪里,不一定为邮件地址,不过最好还是写成正确的email地址

    rcpt to:    说明邮件发送到哪里,一定要为正确的email地址

    data    发送的正文,结束为:回车,.,回车。即两个回车中间一个点

    quit    断开连接

    下面是对字符串进行 base64 编码的类:

    Java代码  收藏代码
    1. package sh.base64Encode;  
    2.   
    3. import sun.misc.BASE64Encoder;  
    4.   
    5. public class Base64Encoder {  
    6.       
    7.     public static String encode(String str)  
    8.     {  
    9.         return new BASE64Encoder().encode(str.getBytes());  
    10.     }  
    11.       
    12.     public static void main(String[] sh)  
    13.     {  
    14.         String name = "youmailname";    // email地址,不用 @以及后面的,如:name = "studymail";  
    15.         String psw = "youmailpassword"; // email密码  
    16.           
    17.         System.out.println(encode(name));  
    18.         System.out.println(encode(psw));  
    19.     }  
    20. }  

    上面的类输出的则是验证身份时需要用到的。下面正式开始了

    1,打开windows命令窗口,键入:telnet smtp.sina.com.cn 25

           smtp.sina.com.cn 是sina邮件服务器,25 是服务器的端口号,

           成功连接的响应为:220 smtp.sina.com.cn ESMTP SINAMAIL <postfix Rules!>,

           前面的 220 即为响应码,只要它是 220 就表示成功连接了,

           其中的 ESMTP 表示 扩展SMTP协议,

    2,成功连接后就想服务器打招呼吧,

           键入:ehlo cup

           上面的 cup 可以换成别的字符串,成功响应如下图:

    看到上图里面有提示有哪些验证方式,有 LOGIN,即表示用户名和密码将需要进行 base64编码。

    3,选择验证方式,这里选择上面的 LOGIN,

          键入:AUTH LOGIN

          成功后将响应:334

          334 表示命令未完成,后面接着输入编码后的email用户名,回车,将又响应:334,再输入编码后的密码,回车,这次如果验证通过将响应:235 。

    4,输入发件人,

          键入:mail from: <studyjavamail@sina.com>

          成功将响应:250 Ok

          发件人最好写成正确的email地址,因为一般邮件服务器也会验证的

    5,输入收件人,

          键入:rcpt to: <studyjavamail@sina.com>

          成功将响应:250 Ok

          收件人必须是正确的email地址,

          并且可以输入多个 rcpt to 命令,将同时给多个email地址发送邮件

    6,写邮件内容,

          键入:data (+ 内容),以 回车 .  回车 结束内容的书写,

         

    7,断开连接,

          键如:quit

    8,赶紧登陆邮箱看看吧,看是否真收到了,反正我是收到了的,呵呵

  • 相关阅读:
    循环计时器
    在一个表格里,超过一定宽度字符串进行截取显示点点,鼠标移上去显示全
    判断单选框是否被选中
    美化的select下拉框
    js获取网页高度
    Bootstrap的使用。。。
    解决网站出现GET .woff 404 (Not Found)的问题
    Bootstrap 字体图标(Glyphicons)
    一个设置为display:none;的div,在用.height()方法获取不到它的高,获取到的高度为0.
    substring() slice() substr()的区别联系
  • 原文地址:https://www.cnblogs.com/fatt/p/4362267.html
Copyright © 2011-2022 走看看