Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
oracle javamail csv附件下载_Java_Oracle_Email - Fatal编程技术网

oracle javamail csv附件下载

oracle javamail csv附件下载,java,oracle,email,Java,Oracle,Email,最近,我在通过oracle javamail从电子邮件下载CSV时遇到了一个问题。我发现第一个可以正常工作(来自大型机服务器),但是第二个csv附件似乎是“application/vnd.ms excel”,因为它显然是一个.csv文件,就像另一个可以完美下载的文件一样 我在这两个问题上使用了相同的代码,但找不到有关此问题的任何信息 如果我把那封邮件转发给自己,我就可以神奇地下载附件,而不会有任何问题。任何帮助都将不胜感激。一旦我开始工作,另一项日常任务就会自动完成 if(content

最近,我在通过oracle javamail从电子邮件下载CSV时遇到了一个问题。我发现第一个可以正常工作(来自大型机服务器),但是第二个csv附件似乎是“application/vnd.ms excel”,因为它显然是一个.csv文件,就像另一个可以完美下载的文件一样

我在这两个问题上使用了相同的代码,但找不到有关此问题的任何信息

如果我把那封邮件转发给自己,我就可以神奇地下载附件,而不会有任何问题。任何帮助都将不胜感激。一旦我开始工作,另一项日常任务就会自动完成

    if(content instanceof java.lang.String){
    //emailBody = (String)content;
} else if(content instanceof Multipart){
    System.out.println("is Multipart");
    Multipart mp = (Multipart)content;
    for (int j=0; j < mp.getCount(); j++) {
        Part part = mp.getBodyPart(j);
        String disposition = part.getDisposition();
        if (disposition == null) {
            // Check if plain
            MimeBodyPart mbp = (MimeBodyPart)part;
            if (mbp.isMimeType("text/plain")) {                             
                //emailBody += (String)mbp.getContent();
            } else {                            
                // Special non-attachment cases here of 
                // image/gif, text/html, ...                                
                String fileName = decodeName(part.getFileName());
                File savedir = new File(path+"\\"+fileName);
                saveFile(savedir, part);                                
            }
        } else if ((disposition != null) &&  
                (disposition.equals(Part.ATTACHMENT) || disposition.equals(Part.INLINE))){
                // Check if plain
                MimeBodyPart mbp = (MimeBodyPart)part;
                if (mbp.isMimeType("text/plain")) {                             
                    System.out.println("has disp of plain");
                    //emailBody += (String)mbp.getContent();
                } else {                            
                    System.out.println("has disp of else");
                    String fileName = decodeName(part.getFileName());
                    File savedir = new File(path+"\\"+fileName);
                    saveFile(savedir, part);                    
                }
        }
    }
}
else{
    System.out.println(message.getContentType());
}  
if(java.lang.String的内容实例){
//emailBody=(字符串)内容;
}else if(多部分的内容实例){
System.out.println(“是多部分”);
多部分mp=(多部分)内容;
对于(int j=0;j
虽然java似乎知道它接收的电子邮件类型,但事实证明它不知道。因为这不是标准类型,所以它将作为输入流返回。我能够用下面的代码看到文件的内容

还请注意,这是application/vnd.ms-excel文件类型的唯一原因是电子邮件的正文是空的

        InputStream emailIn = (InputStream) message.getContent();
    Scanner s = null;
    try{
        s = new Scanner(emailIn).useDelimiter("\\A");
    while(s.hasNext())
        System.out.println(s.next());
    }
    finally{
        s.close();
    }