2011-06-27 29 views
1

我有一個Java類,它生成PDF文件..我用Java郵件發送電子郵件。現在我想知道如何安裝生成的PDF到Java郵件,而在本地保存.. .. 有沒有你不能做任何的方法來attch飛PDF ...生成PDF,重視Java郵件

回答

0

。在連接之前,至少需要臨時保存在本地。你能說出爲什麼要這樣的理由嗎?然後,我們將能夠爲您真正需要的解決方案提供建議。

+0

我們的要求就像不保存在服務器中。我可以知道爲什麼PDF附件在飛行是不可能的。如果我知道我可以繼續使用另一個選項的原因? –

+0

要使用java郵件附加一些東西,你必須指定文件的路徑。爲什麼臨時保存文件不適合你? – Bee

+0

這是我們的要求,沒有任何偏差。我們已經按照你的說法執行了,但是我們仍然被要求暫時不要保存。因此,在這種情況下,適當的理由,應提供給說服他們..請不要讓我知道確切的技術問題,而暫時保存,這是不可能的理由...... –

1

其實,有創建和附加文件的方法。您應該從文件數據中獲取字節,並指定特定的內容類型。 http://www.feedforall.com/mime-types.htm

public static class CustomFileDataSource extends FileDataSource { 

     private byte[] data; 

     public CustomFileDataSource(String fileName, byte[] data) { 
      super(fileName); 
      this.data = data; 
     } 

     @Override 
     public String getContentType() { 
      return "application/pdf"; 
     } 

     @Override 
     public InputStream getInputStream() throws IOException { 

      return new ByteArrayInputStream(data); 
     } 

    } 
    MimeBodyPart filePart = new MimeBodyPart(); 
    filePart.setDataHandler(new DataHandler(new CustomFileDataSource(file.getFileName(),file.getFile()))); 
    filePart.setFileName(file.getFileName()); 
    Multipart mp = new MimeMultipart(); 
    mp.addBodyPart(filePart); 
    message.setContent(mp);