手机
当前位置:查字典教程网 >编程开发 >Java >基于JavaMail API收发邮件的方法
基于JavaMail API收发邮件的方法
摘要:本文实例讲述了基于JavaMailAPI收发邮件的方法。分享给大家供大家参考。具体如下:1.JavaMailAPI按其功能划分通常可分为如下...

本文实例讲述了基于JavaMail API收发邮件的方法。分享给大家供大家参考。具体如下:

1.JavaMail API按其功能划分通常可分为如下三大类

(1)创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。

(2)发送邮件的API:Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。

(3)接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。

2. Session类

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

3.使用JavaMail发送一封简单的邮件

创建包含邮件服务器的网络连接信息的Session对象。

创建代表邮件内容的Message对象。

创建Transport对象、连接服务器、发送Message、关闭连接。

4.实例

(1)JavaMail邮件只发送内容

public class SendMail { public static void main(String[] args) throws Exception { //属性文件 Properties props=new Properties(); //设置邮件的发送主机名、发送协议和是否验证 props.setProperty("mail.host","smtp.sohu.com" ); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.auth", "true"); //获取发送接收邮件环境的对象 Session session=Session.getInstance(props); Message message=createMessage(session); //创建发送邮件的对象 Transport tsp=session.getTransport(); tsp.connect("jb51", "jb51"); tsp.sendMessage(message, message.getAllRecipients()); tsp.close(); } public static Message createMessage(Session session) throws Exception{ //根据环境对象创建一份邮件 MimeMessage message=new MimeMessage(session); //设置邮件属性 message.setFrom(new InternetAddress("jb51@sohu.com")); message.setRecipient(Message.RecipientType.TO,new InternetAddress("jb51@sina.com")); message.setSubject("hello"); //创建邮件体 MimeBodyPart text=new MimeBodyPart(); text.setContent("你好"text/html;charset=utf-8"); //设置描述关系 MimeMultipart mm=new MimeMultipart(); mm.addBodyPart(text); message.setContent(mm); message.saveChanges(); return message; } }

(2)JavaMail邮件发送内容和图片

public class SendImageMail { public static void main(String[] args) throws Exception { //属性文件 Properties props=new Properties(); //设置邮件的发送主机名、发送协议和是否验证 props.setProperty("mail.host","smtp.sohu.com" ); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.auth", "true"); //获取发送接收邮件环境的对象 Session session=Session.getInstance(props); Message message=createMessage(session); //创建发送邮件的对象 Transport tsp=session.getTransport(); tsp.connect("jb51", "jb51"); tsp.sendMessage(message, message.getAllRecipients()); tsp.close(); } public static Message createMessage(Session session) throws Exception{ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("jb51@sohu.com")); message.setRecipient(Message.RecipientType.TO,new InternetAddress("jb51@sina.com")); message.setSubject("图片"); MimeBodyPart text=new MimeBodyPart(); text.setContent("好看吗?<br/><img src='cid:xx.jpg'>","text/html;charset=utf-8"); MimeBodyPart image=new MimeBodyPart(); image.setDataHandler(new DataHandler(new FileDataSource("src//f.jpg"))); image.setContentID("xx.jpg"); MimeMultipart mm=new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(image); mm.setSubType("related"); message.setContent(mm); message.saveChanges(); return message; } }

(3)JavaMail邮件发送内容、图片和附件

public class SendAttchImageMail { public static void main(String[] args) throws Exception { //属性文件 Properties props=new Properties(); //设置邮件的发送主机名、发送协议和是否验证 props.setProperty("mail.host","smtp.sohu.com" ); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.auth", "true"); //获取发送接收邮件环境的对象 Session session=Session.getInstance(props); Message message=createMessage(session); //创建发送邮件的对象 Transport tsp=session.getTransport(); tsp.connect("jb51", "jb51"); tsp.sendMessage(message, message.getAllRecipients()); tsp.close(); } public static Message createMessage(Session session) throws Exception{ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("jb51@sohu.com")); message.setRecipient(Message.RecipientType.TO,new InternetAddress("jb51@sina.com")); message.setSubject("图片"); MimeBodyPart text=new MimeBodyPart(); text.setContent("好看吗?<br/><img src='cid:xx.jpg'>","text/html;charset=utf-8"); MimeBodyPart image=new MimeBodyPart(); image.setDataHandler(new DataHandler(new FileDataSource("src//f.jpg"))); image.setContentID("xx.jpg"); MimeBodyPart attch=new MimeBodyPart(); DataHandler dh=new DataHandler(new FileDataSource("src//默默无 语.mp3")); attch.setDataHandler(dh); String name=dh.getName(); attch.setFileName(MimeUtility.encodeText(name)); MimeMultipart mm=new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(image); mm.setSubType("related"); MimeBodyPart part=new MimeBodyPart(); part.setContent(mm); MimeMultipart m=new MimeMultipart(); m.addBodyPart(part); m.addBodyPart(attch); m.setSubType("mixed"); message.setContent(m); message.saveChanges(); return message; } }

注:邮箱地址必须是真实的

希望本文所述对大家的java程序设计有所帮助。

【基于JavaMail API收发邮件的方法】相关文章:

javamail 发送邮件的实例代码分享

java开发之内部类的用法

java中读取配置文件中数据的具体方法

java中Servlet处理乱码的方法

关于java 图形验证码的解决方法

Java程序执行时间的2种简单方法

基于JAVA中使用Axis发布/调用Webservice的方法详解

Java中ArrayList类的使用方法

Java线程关闭的3种方法

Java 进制转换的方法

精品推荐
分类导航