以编程方式将文件附加到blackberry电子邮件客户端时出现问题
我试图以编程方式将excel电子表格附加到电子邮件,然后启动默认的blackberry电子邮件客户端,并将消息作为参数。不幸的是,我收到错误:“电子邮件服务不支持这些类型的附件。请更改“使用发送”字段或删除附件。”发送按钮不存在,并且菜单中没有“发送”选项;这将阻止发送电子邮件的功能 当我将软件包加载到物理黑莓手机以及模拟器中时,会发生此错误 如果改用API(注释的transport.send行),我可以顺利发送电子邮件 任何和所有的输入将不胜感激,如果我忽略了一些细节,请让我知道以编程方式将文件附加到blackberry电子邮件客户端时出现问题,blackberry,Blackberry,我试图以编程方式将excel电子表格附加到电子邮件,然后启动默认的blackberry电子邮件客户端,并将消息作为参数。不幸的是,我收到错误:“电子邮件服务不支持这些类型的附件。请更改“使用发送”字段或删除附件。”发送按钮不存在,并且菜单中没有“发送”选项;这将阻止发送电子邮件的功能 当我将软件包加载到物理黑莓手机以及模拟器中时,会发生此错误 如果改用API(注释的transport.send行),我可以顺利发送电子邮件 任何和所有的输入将不胜感激,如果我忽略了一些细节,请让我知道 public
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 ) );
}
编辑:
出现错误是因为模拟器没有配置电子邮件帐户。它在任何配置了电子邮件帐户的手机上都可以正常工作。
我希望这能有所帮助,我现在就来帮忙写这篇文章还不算太晚。我以前曾处理过附件,在布莱克贝里处理附件是件痛苦的事 我能想到的唯一问题是您尝试使用的MIME类型。
“Application/octet stream”
,尝试使用与附件扩展名对应的MIME,例如.xls文件的“Application/excel”
。你可以找到完整的清单,这是我能找到的最长的清单
官方开发者页面上的一些知识库文章中提到了黑莓电子邮件服务和附件的一些问题,他们有时说附件必须在文件名中加上前缀“x-rimdevice”
,如“x-rimdevice-serviceupdate.xls”
。虽然我不确定这是否会影响发送电子邮件,但我认为这值得一提
顺便说一句,我正在尝试将你的代码用于我正在编写的应用程序,所以我希望它能起作用