I need to implement Email functionality in my Java application which will open microsoft outlook and attach a file from my directory. Has any implemented the same?
If you want to implement email functionalities in Java, consider JavaMail. Also, if your application has email functionalities, then you don't need to open another email client (such as outlook).
Here is the exact command you want:-
new ProcessBuilder("C:\\Program Files\\Microsoft Office\\Office14\\OUTLOOK.exe","/a","C:\\Desktop\\stackoverflow.txt").start();
First Argument-Path to Outlook.
Second Argument- Outlook attachment command.
Third Argument- Attachment path
According to these docs the command you need is
"path/to/Outlook.exe /c ipm.note /a \"path/to/attachment\""
Assemble this and run it via ProcessBuilder
(Or listen to MarcoS who gives a very good example of why it's sometimes better not to literally answer questions :-))
You can open the system's email client using the desktop class.
Desktop.getDesktop().mail( new URI( "mailto:address@somewhere.com" ) )
I have been able to Open MS Outlook 2007 with a HTML email. I have done this using SWT OLE API. Here's the tutorial on Vogela: http://www.vogella.com/articles/EclipseMicrosoftIntegration/article.html
It says in tutorial that it also works for non-RCP Java.
public void sendEMail()
{
OleFrame frame = new OleFrame(getShell(), SWT.NONE);
// This should start outlook if it is not running yet
OleClientSite site = new OleClientSite(frame, SWT.NONE, "OVCtl.OVCtl");
site.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);
// Now get the outlook application
OleClientSite site2 = new OleClientSite(frame, SWT.NONE, "Outlook.Application");
OleAutomation outlook = new OleAutomation(site2);
OleAutomation mail = invoke(outlook, "CreateItem", 0 /* Mail item */).getAutomation();
setProperty(mail, "BodyFormat", 2 /* HTML */);
setProperty(mail, "Subject", subject);
setProperty(mail, "HtmlBody", content);
if (null != attachmentPaths)
{
for (String attachmentPath : attachmentPaths)
{
File file = new File(attachmentPath);
if (file.exists())
{
OleAutomation attachments = getProperty(mail, "Attachments");
invoke(attachments, "Add", attachmentPath);
}
}
}
invoke(mail, "Display" /* or "Send" */);
}