Message类
在Java Mail 中Message类是所有电子邮件的的超类它的定义如下:
public abstract class javax.mail.Message implements javax.mail.Part
1.标准的Java Mail API中有一个Message的子类:MimeMessage,它可用于电子邮件和Usenet新闻消息。除此之外,其他厂商可以自由扩展Message来满足自身需求。
Message类主要声明了定义大多数消息公共属性的抽象获取和设置方法。这些属性包括
(1)消息地址
(2)消息接收方
(3)消息主题和主体等
可以将这些属性视为包含消息的信封。
2.Message还实现了Part接口。Part接口用于处理消息的主体
创建消息
Message类有三个构造函数可以创建消息:
protected Message();
protected Message(Folder folder,int messageNumber);
protected Message(Session);
其中,第二个方法的参数说明如下:
folder - 包含文件夹
msgnum - 在这个文件夹中消息的序列号
回复消息
如果已经有了一个Message对象,要创建一个新的Message对象,可以使用:
public abstract Message reply(boolean replyAll)throws MessagingException
此方法用加了前缀“Re:”的相同主题和最初消息的发送方地址创建一个新的Message对象。如果参数为true,
消息会寻址到最初消息的所有接收方。消息的内容为空。如果要引用初始消息,就必须自己来完成这个工作。
From地址
下面四个方法用来获得和设置消息的“From”
public abstract Address[] getFrom()
throws MessagingException
public abstract void setFrom()
throws MessagingException
public abstract void addFrom(Address[] addresses)
throws MessagingException
public abstract void addFrom(Address[] addresses)
throws MessagingException
Reply-to地址
有些消息包含一个Reply-to,指示回复消息应当发送到与发送消息不同的地址。有两个方法可以设置和获得这些地址:
public Address[] getReplyTo()
throws MessagingException
Get the addresses to which replies should be directed.
public void setReplyTo(Address[] addresses)
throws MessagingException
Set the addresses to which replies should be directed
接收方地址
消息的发送方一般只存在于From:首部中,而消息的接收方却分为To,Cc,Bcc三个字段。在Java Mail中,这三个字段分别是:
Message.RecipientType.TO
Message.RecipientType.CC
Message.RecipientType.BCC
获取Message的接收方地址有两个方法:
public abstract Address[] getRecipients(Message.RecipientType type)
throws MessagingException
public Address[] getAllRecipients()
throws MessagingException
消息主题
主要有两个方法:
public abstract void setSubject(String subject)
throws MessagingException
public abstract String getSubject()
throws MessagingException
消息日期
消息还有发送、接收日期:
public abstract Date getSentDate()
throws MessagingException
public abstract void setSentDate(Date date)
throws MessagingException
public abstract Date getReceivedDate()
throws MessagingException
package com.mail; import java.util.Date; import java.util.Properties; import javax.mail.*; import javax.mail.internet.InternetAddress; public class HeaderClient { /** * @param args */ public static void main(String[] args) { try { Properties props=new Properties(); props.setProperty("mail.transport.protocol", "pop3"); props.setProperty("mail.host", "pop3.sina.com"); Session session=Session.getDefaultInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("yananlemon@sina.com","111111"); } } ); //连接服务器,并打开文件夹 Store store=session.getStore("pop3"); store.connect("pop3.sina.com", "yananlemon@sina.com", "1111111"); Folder folder=store.getFolder("INBOX"); if(folder==null){ System.out.println("Folder not found!"); System.exit(1); } folder.open(Folder.READ_ONLY); //从服务器获取消息 Message[] ms=folder.getMessages(); for(int i=0;i<ms.length;i++){ System.out.println("--------------Message"+(i+1)+"---------------"); String from =InternetAddress.toString(ms[i].getFrom()); if(from!=null){ System.out.println("消息来自:"+from); } String to=InternetAddress.toString(ms[i].getRecipients(Message.RecipientType.TO)); if(to!=null){ System.out.println("消息去往:"+to); } String replyTo=InternetAddress.toString(ms[i].getReplyTo()); if(replyTo!=null){ System.out.println("消息回复给:"+replyTo); } String cc=InternetAddress.toString(ms[i].getRecipients(Message.RecipientType.CC)); if(cc!=null){ System.out.println("消息抄送:"+cc); } Date sent=ms[i].getSentDate(); if(sent!=null){ System.out.println("消息发送时间::"+sent); } String subject=ms[i].getSubject(); if(subject!=null){ System.out.println("消息主题:"+subject); } Date received=ms[i].getReceivedDate(); if(received!=null){ System.out.println("消息接收时间:"+received); } System.out.println(); } folder.close(false); store.close(); } catch (MessagingException e) { e.printStackTrace(); } } }
下面是输出:
相关推荐
2. **面向对象编程**:JAVA是纯面向对象的语言,因此学习笔记中会详细讲解类的创建、继承、封装、多态等概念。同时,接口、抽象类以及访问修饰符也是重要的知识点。 3. **异常处理**:JAVA提供了一种结构化的异常...
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
【狂神Java学习笔记——前端入门——HTML、CSS、JavaScript学习代码】是针对初学者的一份详实的学习资料,这份笔记记录了跟随B站知名up主“遇见狂神说”的java系列视频中关于前端开发的基础内容。笔记内容不仅与视频...
Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...
这份"Java JDK 6学习笔记——ppt简体版"提供了关于这个关键版本的详细教程,适合初学者和有一定经验的开发者来深入理解Java编程。 首先,我们要了解Java JDK是什么。Java Development Kit,简称JDK,是Oracle公司...
这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...
Python学习笔记——对象和类
Java学习笔记——异常 在Java编程中,异常处理是一项至关重要的技能,它允许开发者优雅地处理程序运行时可能遇到的问题,防止程序意外终止,并提供有用的反馈信息。异常是程序执行过程中遇到的不正常情况,例如除以...
Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...
Java JDK 6学习笔记——ppt简体版 第20章.ppt
Java JDK 6学习笔记——ppt简体版 第19章.ppt
Java JDK 6学习笔记——ppt简体版 第18章.ppt
RRT学习笔记——记录
Python学习笔记——运算符 运算符: 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算
2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据...