JavaMail(二):smtp,pop3命令

 

 

SMTP命令

HELO 向服务器标识用户身份
EHLO向服务器标识用户身份
MAIL FROM发件人地址
RCPT TO标识单个的邮件接收人
DATA 表示所有的邮件接收人已标识,并初始化数据传输
HELP 查询服务器支持什么命令
NOOP 要求接收SMTP仅做OK应答
VRFY验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令
EXPN验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用
REST退出/复位当前的邮件传输
QUIT 要求接收SMTP返回一个OK应答并关闭传输

SMTP案例

package com.levelcoder;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Demo1 {

	public static void main(String[] args) throws MessagingException {
		Properties props = new Properties();
		props.setProperty("mail.smtp.auth", "true");//发送邮件是否需要认证 true 需要认证 false 不需要认证
		props.setProperty("mail.transport.protocol", "smtp");//配置邮件协议
		Session session = Session.getInstance(props);	
		
		session.setDebug(true);//是否开启 调试信息 true 开启 false 不开启 开启的时候 会把和smtp交互过程打印出来
		Message message = new MimeMessage(session) ;
		message.setFrom(new InternetAddress("发件人邮箱"));//设置发件人
		message.setSubject("测试文本");//设置邮件标题
		message.setText("测试文本");//设置发件文本信息
		Transport transport = session.getTransport();
		transport.connect("smtp服务器", 25,"用户名","密码");//String host, int port, String user,String password
		transport.sendMessage(message,new Address[]{new InternetAddress("收件人地址")});
		transport.close();
	}
}

 

执行结果分析

DEBUG: setDebug: JavaMail version 1.4.4   //标记当前JavaMail版本
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.126.com", port 25, isSSL false
220 126.com Anti-spam GT for Coremail System (126com[20140526])
DEBUG SMTP: connected to host "smtp.126.com", port: 25

EHLO N12KCKCM2UO42M8   //向服务器标识用户身份
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFG1q1wUCa0xDrUUUUj
250-STARTTLS
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN"
DEBUG SMTP: Found extension "coremail", arg "1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFG1q1wUCa0xDrUUUUj"
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
AUTH LOGIN   //认证模式
334 dXNlcm5hbWU6
SmF2YVpoYW5nWW9uZ0AxMjYuY29t   //base64格式编码:用户名
334 UGFzc3dvcmQ6
enkxOTkyMTIwNS4=               //base64格式编码:密码
235 Authentication successful  
DEBUG SMTP: use8bit false
MAIL FROM:<JavaZhangYong@126.com>   //发件人
250 Mail OK
RCPT TO:<LevelCoder@126.com>        //收件人
250 Mail OK
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   LevelCoder@126.com
DATA
354 End data with <CR><LF>.<CR><LF>  //.标记当前邮件结束
From: JavaZhangYong@126.com
Message-ID: <772777427.0.1496972256323.JavaMail.Administrator@N12KCKCM2UO42M8>
Subject: =?UTF-8?B?5rWL6K+V5paH5pys?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8  //发送邮件类型
Content-Transfer-Encoding: base64        //发送邮件编码格式

5rWL6K+V5paH5pys                         //发送邮件正文
.
250 Mail OK queued as smtp1,C8mowACnPCXg+zlZqM5gAA--.23809S2 1496972258
QUIT                                     //退出
221 Bye

 

结果

 

POP3命令

命令

描述

USER [username]

处理用户名

PASS [password]

处理用户密码

APOP [Name,Digest]

认可Digest是MD5消息摘要

STAT

处理请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数

UIDL [Msg#]

处理返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的

LIST [Msg#]

处理返回邮件数量和每个邮件的大小

RETR [Msg#]

处理返回由参数标识的邮件的全部文本

DELE [Msg#]

处理服务器将由参数标识的邮件标记为删除,由quit命令执行

RSET

处理服务器将重置所有标记为删除的邮件,用于撤消DELE命令

TOP [Msg# n]

处理服务器将返回由参数标识的邮件前n行内容,n必须是正整数

NOOP

处理服务器返回一个肯定的响应

QUIT

终止会话

转载于:https://my.oschina.net/LevelCoder/blog/917437

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值