`

java mail学习笔记——Message类详解

阅读更多

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();  
        }  
    }  
  
}  

 



下面是输出:



 

  • 大小: 11.9 KB
分享到:
评论

相关推荐

    JAVA学习笔记————————

    2. **面向对象编程**:JAVA是纯面向对象的语言,因此学习笔记中会详细讲解类的创建、继承、封装、多态等概念。同时,接口、抽象类以及访问修饰符也是重要的知识点。 3. **异常处理**:JAVA提供了一种结构化的异常...

    Java学习笔记——良葛格

    "Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...

    狂神Java学习笔记————前端入门——html、css、JavaScript学习代码

    【狂神Java学习笔记——前端入门——HTML、CSS、JavaScript学习代码】是针对初学者的一份详实的学习资料,这份笔记记录了跟随B站知名up主“遇见狂神说”的java系列视频中关于前端开发的基础内容。笔记内容不仅与视频...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...

    Java JDK 6学习笔记——ppt简体版.rar

    这份"Java JDK 6学习笔记——ppt简体版"提供了关于这个关键版本的详细教程,适合初学者和有一定经验的开发者来深入理解Java编程。 首先,我们要了解Java JDK是什么。Java Development Kit,简称JDK,是Oracle公司...

    Java JDK 6学习笔记——ppt简体版附课本代码

    这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...

    Python学习笔记——对象和类

    Python学习笔记——对象和类

    java学习笔记——异常

    Java学习笔记——异常 在Java编程中,异常处理是一项至关重要的技能,它允许开发者优雅地处理程序运行时可能遇到的问题,防止程序意外终止,并提供有用的反馈信息。异常是程序执行过程中遇到的不正常情况,例如除以...

    Java JDK 6学习笔记——ppt

    Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...

    Java JDK 6学习笔记——ppt简体版 第20章.ppt

    Java JDK 6学习笔记——ppt简体版 第20章.ppt

    Java JDK 6学习笔记——ppt简体版 第19章.ppt

    Java JDK 6学习笔记——ppt简体版 第19章.ppt

    Java JDK 6学习笔记——ppt简体版 第18章.ppt

    Java JDK 6学习笔记——ppt简体版 第18章.ppt

    RRT学习笔记——记录

    RRT学习笔记——记录

    Python学习笔记——运算符

    Python学习笔记——运算符 运算符: 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算

    2024数据结构-学习笔记-入门必看建议收藏

    2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据...

Global site tag (gtag.js) - Google Analytics