2017-06-13 85 views
0

在Java代理中,我生成一封郵件。當我只用文本發送郵件時,郵件會發送給收件人。我也想附加一個XML文件到郵件。如果我附上它,我的筆記服務器崩潰。將xml文件附加到mimeentity崩潰Notes服務器

我覺得我的代碼是錯誤的,這就是我想要的附件添加到郵件的部分:

  mime = mimeRoot.createChildEntity(); 
     MIMEHeader hdr = mime.createHeader("Content-Disposition"); 
     hdr.setHeaderValAndParams("attachment; filename=" + OrderFilePath); 
     Stream stream = session.createStream(); 
     System.out.println("Open stream"); 
     //AT THIS IF IT WILL CRASH THE SERVER 
     if (stream.open(OrderFilePath, "binary")){ 
      System.out.println("in eerste if"); 
      if (stream.getBytes() != 0) { 
       System.out.println("getbytes !0 "); 
        mime.setContentFromBytes(stream, "application/octet-stream",MIMEEntity.ENC_IDENTITY_BINARY); 

      } 
       else System.out.println 
       (OrderFilePath + "has no content or is not working"); 
      } 
+0

文件有多大? –

+0

不大10kb大約 – YdB

+0

你有從服務器崩潰的NSD文件嗎? –

回答

0

我有一些工作的LotusScript代碼,不會相差無幾,與兩個例外行:

hdr.setHeaderValAndParams("attachment; filename=\\"" + OrderFilePath + "\\""); 

mime.setContentFromBytes(stream, "application/octet-stream; name=\\"" + OrderFilePath + "\\"",MIMEEntity.ENC_IDENTITY_BINARY); 

我的LS碼,所以喲可以看到自己:

ForAll att In attachments 
     disposition= "attachment" 
     If att.isInLine Then disposition= "inline" 
     Set sect = body.createChildEntity() 
     Call sect.CreateHeader("Content-Disposition").SetHeaderValAndParams(disposition + {; filename="} & att.attName & {";"}) 
     Call sect.CreateHeader("Content-ID").SetHeaderVal(|<| & ListTag(att) & |>|) 
     Set stream = session.CreateStream 
     If stream.Open(att.attFile) Then 
      Call sect.SetContentFromBytes(stream, strContentType & {; name="} & att.attName & {"}, ENC_IDENTITY_BINARY) 
      Call stream.Close 
     End If 
    End Forall 

附件附件僅包含名稱和附件的文件路徑對象的列表;它不是一個完整的Notes附件嵌入對象的東西。