2011-08-16 77 views
2

我試圖通過編程方式將Excel電子表格附加到電子郵件中,然後以該消息作爲參數啓動默認的黑莓電子郵件客戶端。不幸的是,我收到錯誤消息:「電子郵件服務不支持這些類型的附件。更改」發送使用「字段或刪除附件。發送按鈕不存在,並且菜單中沒有「發送」選項;這阻止了發送電子郵件的能力。以編程方式將文件附加到黑莓電子郵件客戶端

當我將程序包加載到我的物理黑莓手機以及模擬器中時發生此錯誤。

如果我使用API​​,我可以毫無困難地發送電子郵件(註釋的transport.send行)。

任何和所有的輸入將不勝感激,如果我忽略了一些細節,請讓我知道。

public Email() 
{ 
    try{ 
     message = new Message(); 
     multipart = new Multipart(); //Multi part can hold attachment AND body (and more) 
     subject = "Service Change Request"; 
     multipart.addBodyPart(new TextBodyPart(multipart, "Hi XXXXXX, \n Here are the details for CLIENT")); 
     byte[] data = null; 
     InputStream stream = MyAPP.getUiApplication().getClass().getResourceAsStream("/blank_form.xls"); 
     data = IOUtilities.streamToBytes(stream); 
     stream.close(); 
     multipart.addBodyPart(new SupportedAttachmentPart(multipart, "application/octet-stream", "ServiceUpdate.xls", data)); 

     Address recipients[] = new Address[1]; 
     recipients[0]= new Address("*******@gmail.com", "user"); 

     message.setSubject(subject); 
     message.setContent(multipart); 
     message.addRecipients(Message.RecipientType.TO, recipients); 

     //Transport.send(message); 

    }catch(Exception e){ 

    } 
} 

public void send(){ 
    Invoke.invokeApplication(Invoke.APP_TYPE_MESSAGES, new MessageArguments(message)); 
} 

回答

2

編輯: 的錯誤出現,因爲模擬器沒有配置電子郵件帳戶。它應該適用於正確配置了電子郵件帳戶的任何電話。

我希望這可以幫助,我也不遲到在這篇文章上伸出援手。
我以前曾使用過附件,並且在Blckberry中與他們合作非常痛苦。

我能想到的唯一問題是您嘗試使用的MIME類型。 "Application/octet-stream",請嘗試使用對應於附件擴展名的MIME,例如對於.xls文件爲"application/excel"。你可以找到完整的列表here,它是我能找到的最長的列表。

也有一些問題與黑莓電子郵件服務和附件正在上like this one官方開發者頁面上幾個知識庫文章中提到,他們有時會說,附件必須在文件名與"x-rimdevice"前綴,如"x-rimdevice-serviceupdate.xls" 。雖然我不確定這會影響傳出的電子郵件,但我認爲這值得一提。

順便說一句,我試圖用你的代碼來編寫我現在編碼的應用程序,所以我很希望它能夠正常工作。

相關問題