zoukankan      html  css  js  c++  java
  • 利用命令行发邮件

    • 1.与SMTP服务器建立连接
    c:> telnet xxx.xxx.xxx.xxx 25
    220 xxxxxxxxxx ESMTP Sendmail
    
    EHLO localhost
    
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-AUTH PLAIN LOGIN
    250-DELIVERBY
    250 HELP
    
    • 2.  AUTH PLAIN认证
    基于明文的SMTP验证,详见:http://www.ietf.org/internet-drafts/draft-ietf-sasl-plain-08.txt 
    其发送用户名与口令的格式应该是“<NULL>tim<NULL>tanstaaftanstaaf”。“tim”是用户名,后边的字符串是口令,NULL是ASCII的0(所以无法使用telnet登录)。

    对认证字符串“-UserIDUserIDPassword”进行Base64编码。 

    -> AUTH PLAIN
    <- 334
    -> ASFasasERWcr=
    <- 235 


    • 3.AUTH LOGIN认证

    分别对用户名和密码进行Base64编码。 

    -> AUTH LOGIN
    <- 334 VXNlcm5hbWU6
    -> BASE64编码的用户名
    <- 334 UGFzc3dvcmQ6
    -> BASE64编码的密码
    <- 235
    •  4.AUTH CRAM-MD5认证

    CRAM-MD5即是一种Keyed-MD5验证方式,CRAM是“Challenge-Response Authentication Mechanism”的所写。所谓Keyed-MD5,是将Clieng与Server共享的一个Key作为一部分MD5的输入,正好邮件系统的用户口令可以作为这个Key。对服务器的进行解码。

    以CRAM-MD5为例,身份验证过程为:
    a. 客户端声明用CRAM-MD5验证方式
    b. 服务器返回一个标记(Base64编码的随机字符串)
    c. 客户端用邮箱密码做密钥,以MD5方式加密此标记,生成HMAC;然后将用户名连同HMAC发送出去
    d. 服务器收到用户名与HMAC,检验其正确性,给出回复
    -> AUTH CRAM-MD5
    <- 334 PDExMjc5NDA4MTYuMTgwMDM5NEBzbXRwLmVsb25nLmNvbT4= (Server发送BASE64编码的Timestamp、Hostname等给Client。解码后
    <1127940816.1800394@smtp.elong.com>

    -> Ymh3YW5nIDVmZWIwYzcxMWVlMGQzYWU1ZTNlYjA4N2VhMGU2YTI3 (Client将收到的信息加上用户名和口令,编码为BASE64发送给Server) <- 235 Authentication successful (Server使用该用户的口令进行MD5运算,如果得到相同的输出则认证成功)
  • 相关阅读:
    About IL, ILGenerator
    何谓系统架构师(转)
    C# weakreference
    新蛋,您能告诉我,这是怎么了吗?
    C#线程同步的常用关键字简介
    [转]百万级访问网站前期的技术准备
    Gridview控件的使用要点
    Asp.net三种页面传值方法
    浅谈 Vue css scoped & module
    Mac iTerm2 zsh: command not found: node/npm/nvm...
  • 原文地址:https://www.cnblogs.com/sekihin/p/6548789.html
Copyright © 2011-2022 走看看