Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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
JavaMail API:访问Outlook时出现NullPointerException_Java_Outlook_Jakarta Mail - Fatal编程技术网

JavaMail API:访问Outlook时出现NullPointerException

JavaMail API:访问Outlook时出现NullPointerException,java,outlook,jakarta-mail,Java,Outlook,Jakarta Mail,我目前正在使用以下代码访问我的Outlook收件箱 public void readAllMsgsFromOutlook() throws FileNotFoundException, IOException, MessagingException { //String host = "smtp-mail.outlook.com"; String emailID = props.getEmail(); String password = props.getPasswo

我目前正在使用以下代码访问我的Outlook收件箱

public void readAllMsgsFromOutlook() throws FileNotFoundException, IOException, MessagingException

{
    //String host = "smtp-mail.outlook.com";

    String emailID = props.getEmail();
    String password = props.getPassword();
    Properties props = new Properties();

    props.setProperty("mail.store.protocol", "imaps");



    try {
        Session session = Session.getInstance(props, null);

        Store store = session.getStore("imaps");
        store.connect("imap-mail.outlook.com", emailID, password);
        Folder inbox = store.getFolder("INBOX");

        inbox.open(Folder.READ_ONLY);

        Message[] msgs = inbox.getMessages();

        System.out.println("Number of New Emails: " + msgs.length);


        for (int msgCounter = 0; msgCounter < msgs.length; msgCounter++) 

        {


            Message msg  = msgs[msgCounter];
            Address[] sender = msg.getFrom();
            Multipart mp =  (Multipart) msg.getContent(); // Throws null pointer exception 
            BodyPart bp = mp.getBodyPart(0);
            Date sentdate = msg.getSentDate();
            String subject = msg.getSubject();
            String content = bp.getContent().toString();


            System.out.println("SENDER: " + sender);
            System.out.println("SENT DATE: " + sentdate.getDate());
            System.out.println("SUBJECT: " + subject);
            System.out.println("CONTENT: " + content);

        }


    } catch (Exception mex) {
        // TODO Auto-generated catch block
        mex.printStackTrace();
    }

}
public void readAllMsgFromOutlook()抛出FileNotFoundException、IOException、MessaginException
{
//String host=“smtp mail.outlook.com”;
字符串emailID=props.getEmail();
字符串密码=props.getPassword();
Properties props=新属性();
props.setProperty(“mail.store.protocol”、“imaps”);
试一试{
Session Session=Session.getInstance(props,null);
Store Store=session.getStore(“imaps”);
store.connect(“imap mail.outlook.com”、emailID、密码);
文件夹收件箱=store.getFolder(“收件箱”);
收件箱。打开(文件夹。只读);
Message[]msgs=inbox.getMessages();
System.out.println(“新电子邮件数量:+msgs.length”);
对于(int-msgCounter=0;msgCounter
但是,我使用这段代码得到一个null指针异常

这是我在控制台中得到的结果:

Number of New Emails: 2
java.lang.NullPointerException
    at javax.mail.internet.ParameterList.set(ParameterList.java:561)
    at com.sun.mail.imap.protocol.BODYSTRUCTURE.parseParameters(BODYSTRUCTURE.java:404)
    at com.sun.mail.imap.protocol.BODYSTRUCTURE.<init>(BODYSTRUCTURE.java:224)
    at com.sun.mail.imap.protocol.FetchResponse.parse(FetchResponse.java:158)
    at com.sun.mail.imap.protocol.FetchResponse.<init>(FetchResponse.java:67)
    at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:136)
    at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:270)
    at com.sun.mail.iap.Protocol.command(Protocol.java:313)
    at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1529)
    at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1521)
    at com.sun.mail.imap.protocol.IMAPProtocol.fetchBodyStructure(IMAPProtocol.java:1221)
    at com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1307)
    at com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:623)
    at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1454)
    at JavaMailAPI.readAllMsgsFromOutlook(JavaMailAPI.java:65)
    at Main.main(Main.java:163)
新邮件数:2封
java.lang.NullPointerException
在javax.mail.internet.ParameterList.set(ParameterList.java:561)
位于com.sun.mail.imap.protocol.BODYSTRUCTURE.parseParameters(BODYSTRUCTURE.java:404)
位于com.sun.mail.imap.protocol.BODYSTRUCTURE.(BODYSTRUCTURE.java:224)
位于com.sun.mail.imap.protocol.FetchResponse.parse(FetchResponse.java:158)
在com.sun.mail.imap.protocol.FetchResponse.(FetchResponse.java:67)
在com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:136)上
位于com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:270)
位于com.sun.mail.iap.Protocol.command(Protocol.java:313)
访问com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1529)
访问com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:1521)
位于com.sun.mail.imap.protocol.IMAPProtocol.fetchBodyStructure(IMAPProtocol.java:1221)
位于com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1307)
位于com.sun.mail.imap.IMAPMessage.getDataHandler(IMAPMessage.java:623)
在javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1454)
位于JavaMailAPI.readAllMsgFromOutlook(JavaMailAPI.java:65)
Main.Main(Main.java:163)

如果我的收件箱中有两封电子邮件,我不知道为什么会出现NullPointer异常。

您的类路径上混合了来自两个不同版本的JavaMail的JavaMail类。确保您只有一个包含javax.mail.*类的jar文件。如果您运行的Java EE应用程序服务器已经包含JavaMail,请确保您的应用程序中没有包含任何JavaMail类。

您的类路径上混合了来自两个不同版本JavaMail的JavaMail类。确保您只有一个包含javax.mail.*类的jar文件。如果您在已经包含JavaMail的Java EE应用程序服务器上运行,请确保您的应用程序中没有包含任何JavaMail类。

我知道什么是空指针异常,我只是不明白为什么在这种特定情况下会出现空指针异常。@thegauravmahawar在这种情况下,NullPointerException似乎不是在代码中传递或取消引用null的结果。它是在邮件提供程序内部发生的。我知道什么是空指针异常,但我不明白为什么在这种特定情况下会出现空指针异常。@在这种情况下,空指针异常似乎不是在代码中传递或取消引用空指针的结果。它发生在邮件提供者的内部。