I've written some code which creates an email with an attachment and adds it to the draft folder. It needs more work to be truly useful, but I thought it might be helpful to someone or you might be able to suggest a better approach.
SourceForge.net Repository - [cahaya-hubung] View of /trunk/zmsrc/au/com/cahaya/hubung/zm/contact/mail/ZimbraAddDraftEmail.java
I've made heavy use of com.zimbra.cs.zclient.ZMailbox to simplify the code. This is the key method:
Feedback welcome.Code:public String send (File messageFile) { AttachmentMessage message = new AttachmentMessage (getSession ()); try { message.setFrom (new InternetAddress (getMailbox ().getName ())); message.setSubject ("test"); message.attachDescription ("Test", MimeEnumType.eTextPlain.toString ()); message.attachFile (messageFile); message.prepareToSend (); } catch (Addres***ception exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } catch (MessagingException exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } catch (ServiceException exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } ZFolder folder = null; try { folder = getMailbox ().getFolderByPath ("Drafts"); } catch (ServiceException exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } if (folder != null) { int size; try { size = message.getSize (); if (size <= 0) { size = 4096; } try { ByteArrayOutputStream out = new ByteArrayOutputStream (size); message.writeTo (out); return getMailbox ().addMessage (folder.getId (), null, null, 0, out.toByteArray (), false); } catch (IOException exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } catch (ServiceException exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } } catch (MessagingException exc) { // TODO Auto-generated catch block myLog.error ("send", exc); } } return null; }


LinkBack URL
About LinkBacks

