在命令行(dos)下收发邮件的方法


收邮件:

 

打开“开始”菜单中的“运行”对话框,输入命令telnet 及远程服务器端口号,如:
telnet pop3.163.com 110 //就会与“网易163免费邮”的pop3服务器pop3.163.com建立连接。
如果上述连接成功,POP3服务器就会回应如下信息(显示在终端上):
+OK Welcome to coremail Mail Pop3 Server(163com[20050206])
user greenerycn  //如果该用户名登录成功,POP3服务器会响应如下信息:
+OK core mail
pass password   //输入密码, 如果成功,终端会显示如下信息:
+OK 5 message (2267 octets)
其中数字5表示有5封邮件,2267表示这5封邮件总的字节数(即2267B),


然后有以下命令可以使用,其命令格式及参数说明如下:
1.stat 命令 格式:stat 无需参数
2.list 命令 格式:list [n] 参数n可选,n为邮件编号
3.uidl 命令 格式:uidl [n] 同上
4.retr 命令 格式:retr n 参数n不可省,n为邮件编号
5.dele 命令 格式:dele n 同上
6.top 命令 格式:top n m 参数n,m不可省,n为邮件编号,m为行数
7.noop 命令 格式:noop 无需参数
8.quit 命令 格式:quit 无需参数


各命令的详细功能见下面的说明:
1、stat命令不带参数,对于此命令,POP3服务器会响应一个正确应答,此响应为一个单行的信息提示,它以“+OK”开头,接着是两个数字,第一个是邮件数目,第二个是邮件的大小,如:+OK 4 1603
2、list命令的参数可选,该参数是一个数字,表示的是邮件在邮箱中的编号,我们可以利用不带参数的list命令,获得各邮件的编号,并且每一封邮件均占用一行显示,前面的数为邮件的编号,后面的数为邮件的大小。
3、uidl命令与list命令用途差不多,只不过uidl命令显示邮件的信息比list更详细,更具体,执行结果如图四。
4、retr命令是收邮件中最重要的一条命令,它的作用是查看邮件的内容,它必须带参数进行,该命令执行之后,服务器应答的信息比较长,其中包括发件人的电子邮箱地址,发件时间,邮件主题等,这些信息统称为邮件头,紧接在邮件头之后的信息便是邮件正文
5、dele命令是用来删除指定的邮件(注意:dele n命令只是给邮件做上删除标记,只有在执行quit命令之后,邮件才会真正删除),删除的应答信息如图六所示.
6、top命令有两个参数,形如: top n m n为邮件编号,m是要读出邮件正文的行数,如果m=0,则只读出邮件的邮件头部分
7、noop命令,该命令发出后,POP3服务器不作任何事,仅返回一个正确响应"+OK"
8、quit命令,该命令发出后,telnet断开与POP3服务器的连接,系统进入更新状态。.
不过用这种方式查看google的邮件是编码,看不成中文.


发邮件 

 

1.计算用户名和密码的base64编码:http://lishiditu.008.net/base64.html 
telnet smtp.163.com 25 //登陆 smtp.163.com 端口号为 25
220 163.com Anti-spam GT for Coremail System (163com[20050206])
HELO localhost // 与服务器打招呼,并告知客户端使用的机器名字,可以随便填写
250 OK
AUTH LOGIN //使用身份认证登陆指令
334 dXNlcm5hbWU6
YWJj           //输入已经base64_encode()过的用户名.
334 UGFzc3dvcm
MTIzNDU2  //输入已经base64_encode()过的密码
235 Authentication successful
MAIL FROM:<greenerycn@163.com> //告诉服务器发信人的地址
250 Mail OK
RCPT TO:<yourframe@21cn.com> //告诉服务器收信人的地址
250 Mail OK

DATA //正面开始传输信件的内容,且最后要以只含有 . 的特殊行结束。
354 End data with <CR><LF>.<CR><LF>


To:yourframe@21cn.com
From:redsos3@163.com
Subject:test mail
Test,# 邮件正文内容,与Header部分空一行开始写
test body
# 邮件写完,以一个句点加回车结果。
250 Mail OK queued as smtp14,F0CPBFsuzUOvoDwE.41582S2


QUIT //断开连接
221 Bye
Connection closed by foreign host.

 


部分状态码说明:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
收发邮件需要使用JavaMail API,以下是在Linux下利用JavaMail收发邮件的步骤: 1.下载JavaMail API,这里建议使用最新的JavaMail 1.6.2版本,下载地址为:https://javaee.github.io/javamail/,下载后解压到任意目录。 2.在Linux系统上安装SMTP和POP3服务,这里以Postfix和Dovecot为例,安装命令为: ``` sudo apt-get install postfix dovecot-core dovecot-imapd dovecot-pop3d ``` 3.配置Postfix和Dovecot,具体配置步骤可以参考相关文档。 4.编写Java程序,实现邮件收发功能,以下是一个简单的JavaMail收发邮件示例代码: ``` import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailClient { public static void main(String[] args) throws Exception { String host = "localhost"; String user = "your_username"; String password = "your_password"; // 创建Properties对象,设置邮件服务器的相关信息 Properties props = new Properties(); props.setProperty("mail.smtp.host", host); props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.smtp.port", "587"); props.setProperty("mail.smtp.starttls.enable", "true"); // 创建Session对象,用于和邮件服务器交互 Session session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, password); } }); // 创建MimeMessage对象,设置邮件的相关信息 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("from@example.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to@example.com")); message.setSubject("Test Email"); message.setText("Hello World!"); // 发送邮件 Transport.send(message); // 接收邮件 Store store = session.getStore("pop3"); store.connect(host, user, password); Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); Message[] messages = inbox.getMessages(); for (Message msg : messages) { System.out.println("Subject: " + msg.getSubject()); System.out.println("From: " + msg.getFrom()[0]); System.out.println("Content: " + msg.getContent().toString()); } inbox.close(false); store.close(); } } ``` 在上述代码中,需要把`host`、`user`和`password`替换成实际的邮件服务器、用户名和密码。 5.编译并运行程序,如果一切正常,就可以在控制台上看到发送邮件和接收到的邮件的相关信息了。 注意:在Linux系统中,如果要使用SSL加密连接邮件服务器,需要在Java程序中添加相关的配置信息。具体配置方法可以参考JavaMail API的文档和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值