以编程方式将文件附加到Blackberry Email Client时出现问题

时间:2011-08-16 04:47:33

标签: blackberry

我正在尝试以编程方式将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 ) );
}

1 个答案:

答案 0 :(得分:2)

修改: 由于模拟器未配置电子邮件帐户,因此出现错误。它应该可以在任何已正确配置电子邮件帐户的手机上正常工作。

我希望这会有所帮助,而且我也不会迟到这个帖子 我之前使用过附件,在Blckberry工作很痛苦。

我能想到的唯一问题是您尝试使用的MIME类型。 "Application/octet-stream",尝试使用与附件扩展名对应的MIME,例如{。1}}表示.xls文件。你可以找到完整的清单here,这是我能找到的最长的清单。

在官方开发者页面like this one上的几个知识库文章中提到的Blackberry电子邮件服务和附件也存在一些问题,他们有时会说附件必须以"application/excel"为前缀在文件名中,如"x-rimdevice"。虽然我不确定这会影响外发邮件,但我认为值得一提。

顺便说一下,我正在尝试将你的代码用于我正在编写的应用程序,所以我有点希望它有效。