2012-04-13 4 views
0

Ich möchte mehrere Bilder mit E-Mail in BB anhängen. Wie kann ich das machen? Hat irgendjemand eine Idee? Bitte helfen Sie mir. Nachstehend ist mein Code, der gut funktioniert, wenn ich nur ein Bild mit E-Mail sende. Also, welche Änderung sollte ich in meinem Code zum Anhängen mehrerer Bilder machen.Wie kann ich mehrere Bilder mit E-Mail in Blackberry anhängen?

public static void SendMailAttachment(Bitmap screenshot) 
      {    

       String htmlContent = "String" ;  
        try 
        { 
         Multipart mp = new Multipart(); 
         Message msg = new Message(); 
         Address[] addresses = {new Address("","")}; 

        for (int i = 0; i<2 ; i++) 
        { 
          PNGEncodedImage img = PNGEncodedImage.encode(screenshot); 
          SupportedAttachmentPart pt = new SupportedAttachmentPart(mp, img.getMIMEType(), 
          "Weed.png", img.getData()); 
          mp.addBodyPart(pt); 

         } 
          msg.setContent(mp); 
          msg.setContent(htmlContent); 

         msg.addRecipients(RecipientType.TO, addresses); 
         msg.setSubject("Subject");   
         Invoke.invokeApplication(Invoke.APP_TYPE_MESSAGES, new MessageArguments(msg)); 

        } 
        catch (AddressException ex) 
        { 
         System.out.println("Exception -->"+ex.getMessage()); 
        } 
        catch (MessagingException ex) 
        { 
         System.out.println("Exception -->"+ex.getMessage()); 
        } 

     } 

Vielen Dank im Voraus.

Antwort

2

Der folgende Code kann zum Anhängen mehrerer Bilder oder Dateien verwendet werden.

public void upload() 
    {  
     Multipart mp = new Multipart(); 
    String fileName = null; 



    for (int i = 0; i<2 ; i++) 
    { 


     //   Dialog.alert(image.); 
     byte[] stream = readStream("file:///SDCard/IMG00001-20110404-1119.JPEG"); 
     SupportedAttachmentPart sap = new SupportedAttachmentPart(mp, MIMETypeAssociations.getMIMEType("IMG00001-20110404-1119.JPEG"),"IMG00001-20110404-1119.JPEG", stream); 
     mp.addBodyPart(sap); 

    } 


    TextBodyPart tbp = new TextBodyPart(mp,"test bodyString"); 
    mp.addBodyPart(tbp); 

    Folder folders[] = Session.getDefaultInstance().getStore().list(Folder.SENT); 
    Message message = new Message(folders[0]); 
    Address[] toAdds = new Address[1]; 

    try { 
     toAdds[0] = new Address("testmailid", null); 
     message.addRecipients(Message.RecipientType.TO,toAdds); 
     //   message.setFrom(new InternetAddress(_from)); 

     //   message.addRecipients(Message.RecipientType.FROM,toAdds); 
     message.setContent(mp); 
     message.setSubject("test subject"); 
     Transport.send(message); 

     Dialog.alert("message send successfully."); 

    } catch (AddressException e) { 
     // TODO Auto-generated catch block 
     //   e.printStackTrace(); 
     Dialog.alert(e.getMessage()); 

    } catch (MessagingException e) { 
     // TODO Auto-generated catch block 
     //   e.printStackTrace(); 
     Dialog.alert(e.getMessage()); 
    } 
} 

private byte[] readStream(String path) 
{ 


InputStream in = null; 
    FileConnection fc = null; 
byte[] bytes = null; 

try 
{ 
    fc = (FileConnection) Connector.open(path); 
    if (fc !=null && fc.exists()) 
    { 
     in = fc.openInputStream(); 
     if (in !=null) 
     { 
      bytes = IOUtilities.streamToBytes(in); 
     } 
    } 
} 
catch(IOException e) 
{ 

} 
finally 
{ 
    try 
    { 
     if (in != null) 
     { 
      in.close(); 
     } 
    } 
    catch(IOException e) 
    {     
    } 
    try 
    { 
     if (fc !=null) 
     { 
      fc.close(); 
     } 
    } 
    catch(IOException e) 
    {     
    } 

}  
return bytes;   

}

i diesen Code verwendet haben. es funktioniert gut.

+0

Danke für die Wiederholung und lassen Sie mich überprüfen .. – Hasmukh

+0

http://chat.stackoverflow.com/rooms/4014/knowledge-sharing-center-for-blackberry-android-and-java – Hasmukh

+0

können Sie Readstream-Methode plz .. – Hasmukh

1

Erstellen Sie einfach ein neues SupportedAttachmentPart für jedes Bild und fügen Sie sie der Nachricht mit der addBodyPart Methode hinzu.

Sobald das Multipart mit dem Körperteil und den Befestigungsteilen bestückt ist, rufen Sie msg.setContent(mp).

+0

Danke für die Antwort ... – Hasmukh

+0

ich versuche so, ist es in Ordnung? for (int i = 0; i <2; i ++) \t \t \t \t {\t \t \t \t \t \t \t \t \t \t PNGEncodedImage img = PNGEncodedImage.encode (photo1); \t \t \t \t \t \t SupportedAttachmentPart pt = new SupportedAttachmentPart (mp, img.getMIMEType() "Weed.png", img.getData()); \t \t \t \t \t mp.addBodyPart (pt); \t \t \t \t} – Hasmukh

+0

Ich hatte versucht, ein Bild in 2 Mal anzuhängen, aber es nicht mit Bild anhängen können Sie mir sagen, was ich mache Fehler? – Hasmukh