Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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
在javaimap中获取X-Mailer_Java_Imap_Jakarta Mail - Fatal编程技术网

在javaimap中获取X-Mailer

在javaimap中获取X-Mailer,java,imap,jakarta-mail,Java,Imap,Jakarta Mail,如何在JavaIMAP中获取x-mail? 我已经写了一个示例程序,但它不能很好地工作。 我得到的是空值。 我错在哪里 import com.sun.mail.imap.IMAPFolder; import com.sun.mail.imap.IMAPMessage; import javax.mail.*; import javax.mail.internet.*; import java.util.*; import java.io.*; im

如何在JavaIMAP中获取x-mail? 我已经写了一个示例程序,但它不能很好地工作。 我得到的是空值。 我错在哪里

import com.sun.mail.imap.IMAPFolder;
    import com.sun.mail.imap.IMAPMessage;
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.*;
    import java.io.*;
    import java.lang.reflect.Field;


/**
 *
 * @author vivek
 */
public class Main {

    public static void main(String[] args) {

    Properties props = System.getProperties();    
    props.setProperty("mail.imap.socketFactory.port", "993");
    props.setProperty("mail.store.protocol", "imaps");
    try {
      Session session = Session.getDefaultInstance(props, null);
      Store store = session.getStore("imaps");
      store.connect("imap.gmail.com", "username", "password");
      System.out.println(store);
      Folder inbox =  store.getFolder("Inbox");
      inbox.open(Folder.READ_ONLY);      
      FetchProfile fp = new FetchProfile();     
      fp.add("X-Mailer"");
      Message[] messages=inbox.getMessages(1, 2);      
      inbox.fetch(messages, fp);            
      for (Message message : messages) {
        System.out.println(message);        
        System.out.println(message.getHeader("X-Mailer""));

      }
    } catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }

  }
}
imap的调试跟踪为

 `DEBUG: JavaMail version 1.4.4
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc]
DEBUG: mail.imap.fetchsize: 16384
DEBUG: mail.imap.statuscachetimeout: 1000
DEBUG: mail.imap.appendbuffersize: -1
DEBUG: mail.imap.minidletime: 10
DEBUG: trying to connect to host "imap.gmail.com", port 993, isSSL true
* OK Gimap ready for requests from 116.202.153.186 bs33if4292090ibb.10
A0 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA XLIST CHILDREN XYZZY SASL-IR AUTH=XOAUTH
A0 OK Thats all she wrote! bs33if4292090ibb.10
DEBUG IMAP: AUTH: XOAUTH
DEBUG: protocolConnect login, host=imap.gmail.com, user=username, password=<non-null>
A1 LOGIN username password
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE
A1 OK username@gmail.com vivek goel authenticated (Success)
A2 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE
A2 OK Success
imaps://username@imap.gmail.com
DEBUG: connection available -- size: 1
A3 EXAMINE Inbox
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS ()]
* OK [UIDVALIDITY 2]
* 27512 EXISTS
* 0 RECENT
* OK [UIDNEXT 58271]
A3 OK [READ-ONLY] Inbox selected. (Success)
A4 FETCH 1 (BODY.PEEK[HEADER.FIELDS (X-Mailer)])
* 1 FETCH (BODY[HEADER.FIELDS (X-Mailer)] {4}


)
A4 OK Success
com.sun.mail.imap.IMAPMessage@6ba7508a
null`
调试:JavaMail版本1.4.4 调试:已成功加载资源:/META-INF/javamail.default.providers 调试:加载的提供程序的表 调试:按类名列出的提供程序:{com.sun.mail.smtpsslttransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.smtpsslttransport,sun Microsystems,Inc],com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtps,com.SMTPTransport,sun Microsystems,Inc],com.sun.mail.imapssltore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,sun Microsystems,Inc],com.sun.mail.pop3.pop3ssstore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.pop3ssstore,sun Microsystems,Inc],com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.mail.imap.IMAPStore,sun Microsystems,Inc],com.sun[商店,pop3,com.sun.mail.pop3.POP3Store,sun Microsystems,Inc]] 调试:协议列出的提供程序:{imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.imapssltore,sun Microsystems,Inc],imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,sun Microsystems,Inc],smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.smtpsslttransport,sun Microsystems,Inc],pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,sun Microsystems,Inc],pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.pop3ssl,sun Microsystems,Inc],smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.SMTPTransport,sun Microsystems,Inc]] 调试:已成功加载资源:/META-INF/javamail.default.address.map 调试:getProvider()返回javax.mail.Provider[STORE,imaps,com.sun.mail.imap.imapssltore,sun Microsystems,Inc] 调试:mail.imap.fetchsize:16384 调试:mail.imap.statuscachetimeout:1000 调试:mail.imap.appendbuffersize:-1 调试:mail.imap.minidle时间:10 调试:尝试连接到主机“imap.gmail.com”,端口993,isSSL true *OK Gimap准备好接受来自116.202.153.186 bs33if4292090ibb.10的请求 A0能力 *功能IMAP4rev1取消选择空闲命名空间配额XLIST子项XYZZZY SASL-IR AUTH=XOAUTH A0好的,她就写这些了!bs33if4292090ibb.10 调试IMAP:AUTH:XOAUTH 调试:protocolConnect登录,主机=imap.gmail.com,用户=用户名,密码= A1登录用户名密码 *功能IMAP4rev1取消选择空闲命名空间配额ID XLIST子项X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE A1好的username@gmail.comvivek goel认证(成功) A2能力 *功能IMAP4rev1取消选择空闲命名空间配额ID XLIST子项X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE A2 OK成功 imaps://username@imap.gmail.com 调试:连接可用--大小:1 A3检查收件箱 *标志(\responsed\Flagged\Draft\Deleted\Seen) *OK[PERMANENTFLAGS()] *OK[UID有效性2] *27512存在 *0最近 *好的[UIDNEXT 58271] A3已选择OK[只读]收件箱。(成功) A4获取1(BODY.PEEK[HEADER.FIELDS(X-Mailer)]) *1获取(BODY[HEADER.FIELDS(X-Mailer)]{4} ) A4 OK成功 com.sun.mail.imap。IMAPMessage@6ba7508a 空的`
看起来不错,ish。现在,你用say Thunderbird进行imap并检查X-mailer头是否存在了吗?

看起来不错,ish。现在,你用say Thunderbird进行imap并检查X-mailer头是否存在了吗?

使用
-Dmail.debug=true
来了解imap服务器的情况。和X-header都是可选的。我无法使用e X-Mailer Fetch。当我启用调试模式时,请使用
-Dmail.debug=true
了解IMAP服务器的情况。和X-header都是可选的。我看不到X-Mailer Fetch。当我启用调试模式时,是的。它存在。但当我启用调试或迭代时,抛出所有头。我看不到此头。它也不在Fetch命令中。是的。我不存在。但当我启用调试或迭代时,抛出了所有标头。我看不到此标头。它也不在fetch命令中。