JavaMail的使用

本文详细介绍了JavaMail在SMTP发邮件协议(如Ehlo、Auth、Mail、Rcpt等)和POP3收邮件协议(如user、pass、stat等)的应用,以及如何使用javamail组件发送包含发件人、收件人、主题和内容的简单邮件。
摘要由CSDN通过智能技术生成

目录

1 JavaMail的使用

1.1 发邮件协议

1.2 收邮件协议

1.3 用JavaMail组件发送邮件

1.4 使用javamail发送简单邮件


1 JavaMail的使用

1.1 发邮件协议

        smtp, simple message transfer protocol.

SMTP命令及格式

说     明

Ehlo<SP><domain><CRLF>

ehlo命令是SMTP邮件发送程序与SMTP邮件接收程序建立连接后必须发送的第一条SMTP命令,参数<domain>表示SMTP邮件发送者的主机名。ehlo命令用于替代传统SMTP协议中的helo命令。

Auth<SP>Login<CRLF>

如果SMTP邮件接收程序需要SMTP邮件发送程序进行认证时,它会向SMTP邮件发送程序提示它所采用的认证方式,SMTP邮件发送程序接着应该使用这个命令回应SMTP邮件接收程序,参数<para>表示回应的认证方式,通常是SMTP邮件接收程序先前提示的认证方式。

Mail<SP>From:<reverse-path><CRLF>

此命令用于指定邮件发送者的邮箱地址,参数<reverse-path>表示发件人的邮箱地址。

Rcpt<SP>To:<forword-path><CRLF>

此命令用于指定邮件接收者的邮箱地址,参数<forward-path>表示接收者的邮箱地址。如果邮件要发送给多个接收者,那么应使用多条Rcpt<SP>To命令来分别指定每一个接收者的邮箱地址。

Data<CRLF>

此命令用于表示SMTP邮件发送程序准备开始传送邮件内容,在这个命令后面发送的所有数据都将被当作邮件内容,直至遇到“<CRLF>.<CRLF>”标识符,则表示邮件内容结束。

Quit<CRLF>

此命令表示要结束邮件发送过程,SMTP邮件接收程序接收到此命令后,将关闭与SMTP邮件发送程序的网络连接。

1.2 收邮件协议

命令及其使用格式

说   

user<SP>username<CssRLF>

user命令是POP3客户端程序与POP3邮件服务器建立连接后通常发送的第一条命令,参数username表示收件人的帐户名称。

pass<SP>password<CRLF>

pass命令是在user命令成功通过后,POP3客户端程序接着发送的命令,它用于传递帐户的密码,参数password表示帐户的密码。

stat<CRLF>

stat命令用于查询邮箱中的统计信息,例如,邮箱中有邮件数和邮件占用的字节大小等。

list<SP>[msg#]<CRLF>

list命令用于列出邮箱中的邮件信息,参数msg#是一个可选参数,表示邮件的序号。当不指定参数时,POP3服务器列出邮箱中所有的邮件信息;当指定参数msg#时,POP3服务器只返回该序号对应的邮件的信息。

retr<SP>msg#<CRLF>

list命令用于获取某封邮件的内容,参数msg#表示邮件的序号。

dele<SP>msg#<CRLF>

dele命令用于在某封邮件上设置删除标记,参数msg#表示邮件的序号。POP3服务器执行dele命令时,只是为邮件设置了删除标记,并没有真正把邮件删除掉,只有POP3客户端程序发出quit命令后,POP3服务器才会真正删除所有设置了删除标记的邮件。

rset<CRLF>

rset命令用于清除所有邮件的删除标记。

noop<CRLF>

noop命令用于检测POP3客户端与POP3服务器的连接情况。

quit<CRLF>

quit命令表示要结束邮件接收过程,POP3服务器接收到此命令后,将删除所有设置了删除标记的邮件,并关闭与POP3客户端程序的网络连接。

1.3 用JavaMail组件发送邮件

        JavaMail组件: Sun公司专门用于发送邮件的工具。

                 javax.mail.*    核心包

                 javax.activation.*  辅助包

        核心的API:

                 Session类: 用于创建一次发送邮件的会话。

                 MimeMessage类: 用于创建一封邮件。设置邮件的发件人,邮件的收件人,主题,内容,附件等。

                 Transport类:用于发送一封邮件。

1.4 使用javamail发送简单邮件

/**

 * 使用javamail发送第一封邮件

*/

public class Demo1 {

   public static void main(String[] args) throws Exception{

      //1.创建Session对象

      /**

       * 参数一: 创建邮件会话的属性。

       * 参数二: 邮件登录的验证信息。例如用户名和密码。

       */

      Properties props = new Properties();

      //指定发送邮件的服务器地址

      props.setProperty("mail.host", "smtp.126.com");

      //指定使用验证登录方式登录邮箱

      props.setProperty("mail.smtp.auth", "true");

     

      Session session = Session.getDefaultInstance(props, new Authenticator() {

          @Override

          protected PasswordAuthentication getPasswordAuthentication() {

             return new PasswordAuthentication("ericxu_12345@126.com","eric12345");

          }

      });

      //打开邮件发送的dubug功能

      session.setDebug(true);

     

      //2.创建一封邮件

      MimeMessage mail = new MimeMessage(session);

     

      //3.设置邮件

      //3.1 设置发件人

      mail.setSender(new InternetAddress("ericxu_12345@126.com"));

      //3.2 设置收件人

      /**

       * TO: 发件

       * CC: 抄送

       * BCC: 密送

       */

      mail.setRecipient(RecipientType.TO, new InternetAddress("ericxu_12345@163.com"));

     

      //3.3 设置主题

      mail.setSubject("这是一封用java发送的邮件!");

     

      //3.4 设置内容

      /**

       * 参数一: 具体内容

       * 参数二: 内容类型

       */

      mail.setContent("这是java发送的邮件的正文内容!!!!哈哈哈", "text/plain;charset=utf-8");

     

      //4.发送邮件

      Transport.send(mail);

   }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棉花糖老丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值