现在的位置: 首页 > 综合 > 正文

cmd下手工由sina用户向sohu用户发送Email

2017年11月19日 ⁄ 综合 ⁄ 共 3349字 ⁄ 字号 评论关闭

IT程序员开发必备-各类资源下载清单,史上最全IT资源,个人收藏总结!

在使用SMTP协议发送邮件时,cmd下其用户名和密码需要经过base64编码进行处理,POP3协议接受邮件则不需要进行base64编码

package edu.mail.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import sun.misc.BASE64Encoder;
/**
 * 因为在cmd命令行中输入的用户名和密码必须经过Base64编码处理,所以需要对用户名和密码进行Base64编码 
 **/
public class Base64Util {
   public static void main(String[] args) throws IOException {
	 BASE64Encoder encoder = new BASE64Encoder();
	 System.out.println("please input user name:");
	 String username = new BufferedReader(new InputStreamReader(System.in)).readLine();
	 System.out.println(encoder.encode(username.getBytes()));
	 System.out.println("please input password:");
	 String password = new BufferedReader(new InputStreamReader(System.in)).readLine();
	 System.out.println(encoder.encode(password.getBytes()));
	 
   }
}


以163邮箱为例→→→→→→→telnet发邮件

1.连接→telnet smtp.163.com 25

回显”220″

2.报名字(随便写)→helo vkill

回显”250 ok”

3.登陆模式(这时选一般登陆模式)→AUTH LOGIN

回显”334 dXNlcm5hbWU6″

(注:这时的用户和密码都为Base64编码后的字符,手头没有Base64编码加密器的话,偶提供个在线的:http://www.yx127.com/base64.html)、

4.用户名→****

回显”334 UGFzc3dvcmQ6″

5.密码→****

回显”235 Authentication successful” 表示验证通过

6.发件人→mail from: <XXXXX@163.com >

回显”250 Mail OK”

7.收件人→rcpt to: <XXXXX@56.com >

回显”250 Mail OK”

8.开始写正文→data

输入正文内容就ok,正文要符合MIME规范

例子:

From: he200377@163.com ←电子邮件的发信人

To: he200377@56.com ←电子邮件的收信人

Cc: he200377@56.com ←接收通过抄送方式发送的邮件的收件人

Subject: test ←电子邮件的主题

MIME-Version: 1.0 ←MIME 协议的版本

Content-Type: text/plain ←邮件格式text

 

hello vkill ←内容

当行输入. 回车,回显”250 OK”发送成功

 

9.断开连接→quit

以163邮箱为例→→→→→→→telnet邮件

注意:所有响应+OK (ok) or -ERR (no)

 

1.连接→telnet pop.163.com 110

 

2.用户名→user ****

 

3.密码→pass ****

 

4.验证ok后,终端会显示如下信息:

+OK 60 message(s) [72208371 byte(s)]

数字60表示有60封邮件,72208371表示这60封邮件总的字节数(即72208371B)

 

这时可使用的命令如下:

 

1.stat命令 格式:stat 无需参数

 

stat命令,查看统计,执行后,POP3服务器会响应一个正确应答,它以“+OK”开头,接着是两个数字,第一个是邮件数目,第二个是邮件的大小

 

2.list命令 格式:list [n] 参数n可选,n为邮件编号

 

list命令,查看邮件列表,可以利用不带参数的list命令,获得各邮件的编号,并且每一封邮件均占用一行显示,前面的数为邮件的编号,后面的数为邮件的大小

 

3.uidl命令 格式:uidl [n] 参数n可选,n为邮件编号

 

uidl命令,与list同,不过显示邮件的信息比list更详细,更具体

 

4.retr命令 格式:retr n 参数n不可省,n为邮件编号

 

retr命令,查看邮件的内容

 

5.dele命令 格式:dele n 参数n不可省,n为邮件编号

 

dele命令,删除指定的邮件(注意:dele n命令只是给邮件做上删除标记,只有在执行quit命令之后,邮件才会真正删除)

 

6.top 命令 格式:top n m 参数n,m不可省,n为邮件编号,m为行数

 

top命令,读取指定邮件正文的行数,如果m=0,则只读出邮件的邮件头部分

 

7.noop命令 格式:noop 无需参数

 

noop命令,该命令发出后,POP3服务器不作任何事,仅返回一个正确响应”+OK”

 

8.quit命令 格式:quit 无需参数

 

quit命令,该命令发出后,telnet断开与POP3服务器的连接,系统进入更新状态

以163邮箱为例,利用.bat文件自动调用telnet发送邮件!

 (1).新建一个mail.bat文件,里面内容为:

  
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "open smtp.163.com 25{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 1000 >>telnet_tmp.vbs

echo sh.SendKeys "helo abc{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "auth login{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "eGgyMTYzMTk={ENTER}" >>telnet_tmp.vbs 

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "eGlhb3hpYW8={ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "mail from:<xh216319@163.com>{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "rcpt to:<351495916@qq.com>{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "data{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "subject:!!!Write Mail Subject Here!!!!{ENTER}{ENTER}" >>telnet_tmp.vbs 

echo sh.SendKeys "!!!Write Mail Content Here!!!{ENTER}" >>telnet_tmp.vbs 

echo sh.SendKeys ".{ENTER}" >>telnet_tmp.vbs

start telnet

cscript //nologo telnet_tmp.vbs

del telnet_tmp.vbs

(2).双击mail.bat

 

抱歉!评论已关闭.