Search code examples
javaemailoutlookuriprocessbuilder

Create email with recipient, subject, body AND attachment


I've been working on an email generating program and I am able to generate an email that has either an attachment upon generation using

ProcessBuilder p=new ProcessBuilder("C:\\Program Files (x86)\\Microsoft Office\\Office16\\OUTLOOK.EXE","/a","C:\\BackupData.docx");

or a generated email with the recipient, subject, and body filled out using

URI msg = new URI("mailto", mailer+"&subject="+subject+"?body="+body, (String) null);

My issue is that I cannot figure out a way to generate an Outlook email that has both of these features. If there is some way to combine these to create an email with attachment, and populated subject & body, I would like to know how to do that.


Solution

  • new ProcessBuilder("C:\\Program Files (x86)\\Microsoft Office\\Office16\\OUTLOOK.EXE",
        "/c", "ipm.note", // create new e-mail message
        "/m", mailer + "?subject=" + subject + "&body=" + body, // set recipient, subject and body
        "/a", "C:\\BackupData.docx"); // attach file
    

    This will start Outlook, open a new e-mail with recipient, subject, and body populated and the file added as attachment.

    Beware that in the strings subject and body the characters % " & / ? \ have to be encoded using percent encoding.