Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中使用javamail读取转发的邮件?_Java_Jakarta Mail - Fatal编程技术网

如何在java中使用javamail读取转发的邮件?

如何在java中使用javamail读取转发的邮件?,java,jakarta-mail,Java,Jakarta Mail,我想阅读gmail正文中的所有内容,如邮件内容、附件,如果有任何转发邮件,我也想阅读。 如何使用java实现这一点 这是我的ReadMail.java:- public class ReadMail { public static void main(String[] args) throws MessagingException { System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");

我想阅读gmail正文中的所有内容,如邮件内容、附件,如果有任何转发邮件,我也想阅读。 如何使用java实现这一点

这是我的ReadMail.java:-

public class ReadMail {

    public static void main(String[] args) throws MessagingException {

        System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
        Session session = Session.getDefaultInstance(new Properties( ));
        Store store = session.getStore("imaps");
        store.connect("imap.googlemail.com", 993, "username", "password");
        Folder inbox = store.getFolder( "INBOX" );
        inbox.open( Folder.READ_WRITE );
        System.out.println("Coming here");
        int count = inbox.getMessageCount();
        System.out.println("Count : "+count);
        Message[] messages = inbox.search(
            new FlagTerm(new Flags(Flags.Flag.SEEN), true));


        for ( Message message : messages ) 
        {
            MimeMessage m = (MimeMessage) inbox.getMessage(count);
            System.out.println("Message Number : "+message.getMessageNumber());
            System.out.println(m.getMessageID());
            Enumeration headers = message.getAllHeaders();
            while (headers.hasMoreElements()) {
              Header h = (Header) headers.nextElement();
              System.out.println(h.getName() + ": " + h.getValue());
            }

           Address[] recipients = message.getAllRecipients();

           for(int i=0; i<recipients.length; i++)
           {
               System.out.println(recipients[i]);
           }

          System.out.println("sendDate: " + message.getSentDate());          
          System.out.println("from : "+ message.getFrom()[0]);
          System.out.println(" subject:" + message.getSubject()); 
          try {
            System.out.println("Message :"+ message.getContent());
        } catch (IOException e) {
            e.printStackTrace();
        }

          inbox.setFlags(messages, new Flags(Flags.Flag.SEEN), true);
        }
    }
}
公共类ReadMail{
公共静态void main(字符串[]args)抛出MessaginException{
System.setProperty(“https.protocols”、“TLSv1、TLSv1.1、TLSv1.2”);
Session=Session.getDefaultInstance(新属性());
Store Store=session.getStore(“imaps”);
store.connect(“imap.googlemail.com”,993,“用户名”,“密码”);
文件夹收件箱=store.getFolder(“收件箱”);
收件箱。打开(Folder.READ\u WRITE);
System.out.println(“来到这里”);
int count=inbox.getMessageCount();
System.out.println(“计数:+Count”);
Message[]messages=inbox.search(
新FlagTerm(新标志(Flags.Flag.SEEN),true);
用于(消息:消息)
{
mimessage m=(mimessage)inbox.getMessage(count);
System.out.println(“消息编号:+Message.getMessageNumber());
System.out.println(m.getMessageID());
枚举头=message.getAllHeaders();
while(headers.hasMoreElements()){
Header h=(Header)headers.nextElement();
System.out.println(h.getName()+“:”+h.getValue());
}
Address[]recipients=message.getAllRecipients();
有关(int i=0;i的详细信息,请参阅,以了解转发消息的两种方式

如果消息作为附件转发,则可以通过获取附件的内容并将其强制转换到消息对象来轻松读取转发消息的内容


如果消息是内联转发的,则需要使用某种启发式方法分析消息正文,以确定消息正文的哪一部分是转发的消息。

执行此操作时,是否可以包括错误或不希望出现的结果/行为?我没有收到任何错误。我也想获得转发消息的详细信息。我该怎么办“这个?”格斯说