使用JavaMail API收发邮件
JavaMail API按其功能划分通常可分为如下三大类: 创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。 发送邮件的API :Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。 接收邮件的API :Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。 Session类 Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。
邮件发送程序 使用JavaMail发送一封简单的邮件: 1、创建包含邮件服务器的网络连接信息的Session对象。 2、创建代表邮件内容的Message对象。 3、创建Transport对象、连接服务器、发送Message、关闭连接。 下面以从csdn@sohu.com 给 1324117@sina.com 发一封带有图片的邮件为例,代码如下: public class SeendMail { public static void main(String[] args) { // 设置属性 Properties props = new Properties(); props.setProperty("mail.host", "smtp.sohu.com"); props.setProperty("mail.transport.protocol","smtp"); props.setProperty("mail.smtp.auth", "ture"); Session session=Session.getInstance(props); Message message=CreatMessage(session); try { Transport trs=session.getTransport(); trs.connect("csdn", "csdn"); trs.sendMessage(message,message.getAllRecipients()); trs.close(); } catch (Exception e) { e.printStackTrace(); } } //创建邮件 public static Message CreatMessage(Session session){ MimeMessage message=new MimeMessage(session); try { // 设置属性 message.setFrom(new InternetAddress("csdn@sohu.com")); message.setRecipient(Message.RecipientType.TO, new InternetAddress("1324117@sina.com ")); message.setSubject("kxl"); //创建邮件体 MimeBodyPart text=new MimeBodyPart(); text.setContent("这有好多图片<br/><img src='cid:xx.jpg'><br/><img src='cid:yy.jpg'><br/>选一张吧", "text/html;charset=utf-8"); //设置图片 MimeBodyPart image=new MimeBodyPart(); image.setDataHandler(new DataHandler(new FileDataSource("src//f.jpg"))); image.setContentID("xx.jpg"); MimeBodyPart image1=new MimeBodyPart(); image1.setDataHandler(new DataHandler(new FileDataSource("src//x.jpg"))); image1.setContentID("yy.jpg"); //描述关系 //图片与正文的描述关系 MimeMultipart mm = new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(image); mm.addBodyPart(image1); mm.setSubType("related"); message.setContent(mm); message.saveChanges(); } catch (Exception e) { e.printStackTrace(); } return message; } }