利用JavaMail怎么实现一个邮件发送与接收功能

  介绍

利用JavaMail怎么实现一个邮件发送与接收功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> 1、JavaMail介绍

JavaMail是太阳公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面所讲的SMTP、POP3、IMAP,还有MIME等。我们在使用JavaMail API编写邮件时,无须考虑邮件的底层实现细节,只要调用JavaMail开发包中相应的API类就可以了。

利用JavaMail怎么实现一个邮件发送与接收功能“> <br/> </p> <p>下载这个版本的JavaMail,包含了SMTP, IMAP,和POP3协议的实现只</p> <p> <强> 2、JavaMail API </强> </p> <p> JavaMail API按照功能可以划分为如下三大类:</p> <p>①,创建和解析邮件的API </p> <p>②,发送邮件的API </p> <p>③,接收邮件的API </p> <p>以上三种类型的在JavaMail API中由多个类组成,但是主要有四个核心类,我们在编写程序时,记住这四个核心类,就很容易编写出Java邮件处理程序。</p> <p> <img src=

①,消息类:javax.mail。消息类是创建和解析邮件的核心API,这是一个抽象类,通常使用它的子类javax.mail.internet.MimeMessage类。它的实例对象表示一份电子邮件。客户端程序发送邮件时,首先使用创建邮件的JavaMail API创建出封装了邮件数据的消息对象,然后把这个对象传递给邮件发送API(运输类)发送。客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在信息类的实例中,客户端程序在使用邮件解析API从这个对象中解析收到的邮件数据。

②,运输类:javax.mail。运输类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议,客户端程序创建好消息对象后,只需要使用邮件发送API得到运输对象,然后把消息对象传递给运输对象,并调用它的发送方法,就可以把邮件发送给指定的SMTP服务器。

③,存储类:javax.mail。存储类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议,客户端程序接收邮件时,只需要使用邮件接收API得到商店对象,然后调用商店对象的接收方法,就可以从指定的POP3服务器获得邮件数据,并把这些邮件数据封装到表示邮件的消息对象中。

④,会话类:javax.mail。会话类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,例如邮件服务器的主机名,端口号,采用的邮件发送和接收协议等.Session对象根据这些信息构建用于邮件收发的运输和存储对象,以及为客户端创建信息对象时提供信息支持。

<强> 3,使用JavaMail发送简单的纯文本邮件

在理解下面通过代码实现邮件的发送时,我们可以将邮件发送假想为火箭运载这卫星发送。其中消息是卫星,运输是火的箭,而卫星和火箭的构建都需要会话的帮助,这样的关系更加便于记忆。

包com.ys.mail;
  
  进口java.io.ObjectInputStream.GetField;
  进口java.util.Date;
  进口java.util.Properties;
  
  进口javax.mail.Address;
  进口javax.mail.Message;
  进口javax.mail.MessagingException;
  进口javax.mail.Session;
  进口javax.mail.Transport;
  进口javax.mail.internet.AddressException;
  进口javax.mail.internet.InternetAddress;
  进口javax.mail.internet.MimeMessage;
  进口javax.swing.text.html.MinimalHTMLWriter;
  
  公开课SendMailText {//发件人地址
  公共静态字符串senderAddress=皒xx@163.com";//收件人地址
  公共静态字符串recipientAddress=皒xx@qq.com";//发件人账户名
  公共静态字符串senderAccount=皒xx";//发件人账户密码
  公共静态字符串senderPassword=皒xx";
  
  公共静态void main (String [] args){抛出异常//1,连接邮件服务器的参数配置
  属性道具=new属性();//设置用户的认证方式
  props.setProperty (“mail.smtp.auth",“true");//设置传输协议
  props.setProperty (“mail.transport.protocol",“smtp");//设置发件人的SMTP服务器地址
  props.setProperty (“mail.smtp.host",“smtp.163.com");//2、创建定义整个应用程序所需的环境信息的会话对象
  会议会话=Session.getInstance(道具);//设置调试信息在控制台打印出来
  session.setDebug(真正的);//3、创建邮件的实例对象
  消息味精=getMimeMessage(会话);//4,根据会话对象获取邮件传输对象运输
  交通运输=session.getTransport ();//设置发件人的账户名和密码
  交通工具。连接(senderAccount senderPassword);//发送邮件,并发送到所有收件人地址,message.getAllRecipients()获取到的是在创建邮件对象时添加的所有收件人,抄送人,密送人
  transport.sendMessage(味精,msg.getAllRecipients ());//如果只想发送给指定的人,可以如下写法//运输。sendMessage(味精,新地址[]{新InternetAddress (“xxx@qq.com")});//5、关闭邮件连接
  transport.close ();
  }/* *
  *获得创建一封邮件的实例对象
  * @param会话
  * @return
  * @throws MessagingException
  * @throws AddressException
  */公共静态MimeMessage getMimeMessage会话(会话)抛出异常{//创建一封邮件的实例对象
  MimeMessage味精=new MimeMessage(会话);//设置发件人地址
  味精。setFrom(新InternetAddress (senderAddress));/* *
  *设置收件人地址(可以增加多个收件人,抄送,密送),即下面这一行代码书写多行
  * MimeMessage.RecipientType.TO:发送
  * MimeMessage.RecipientType.CC:抄送
  * MimeMessage.RecipientType.BCC:密送
  */msg.setRecipient (MimeMessage.RecipientType。,新InternetAddress (recipientAddress));//设置邮件主题
  msg.setSubject(“邮件主题“,“UTF-8");//设置邮件正文
  msg.setContent(“简单的纯文本邮件!“,“text/html; charset=UTF-8");//设置邮件的发送时间,默认立即发送
  味精。setSentDate(新日期());
  
  返回味精;
  }
  
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

利用JavaMail怎么实现一个邮件发送与接收功能