java smtp pop3_JavaMail(二):smtp,pop3命令

本文详细介绍了SMTP和POP3邮件协议的主要命令及其作用,包括HELO/EHLO、MAIL FROM、RCPT TO、DATA、QUIT等SMTP命令和USER、PASS、STAT、LIST、RETR等POP3命令。同时,通过一个JavaMail的实例展示了如何使用这些协议发送邮件,涉及认证、设置发件人和收件人、邮件内容等关键步骤。
摘要由CSDN通过智能技术生成

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: //发件人

250 Mail OK

RCPT TO: //收件人

250 Mail OK

DEBUG SMTP: Verified Addresses

DEBUG SMTP: LevelCoder@126.com

DATA

354 End data with . //.标记当前邮件结束

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

结果

f12f8c4fac538463581eb5a5b2a9cfe6.png

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

终止会话

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值