我有一个运行在Tomcat上的Java应用程序,它需要在连接客户端的计算机上生成一封发送到Outlook的电子邮件。目前,我的代码总是将电子邮件定向到运行tomcat的服务器上的Outlook,而不是指向连接的客户端。我已将用于连接到Outlook的代码附加到下面。任何帮助实现这一目标的人都将不胜感激。
package org.outlook.emails;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
public class EmailAPI
{
private ActiveXComponent ol;
private Dispatch outlook;
private Object mapi[] = new Object[1];
private Object email[] = new Object[1];
public EmailAPI()
{
mapi[0] = "MAPI";
email[0] = 0;
ol = new ActiveXComponent("Outlook.Application");
outlook = ol.getObject();
Dispatch.call(outlook,"GetNamespace",mapi).toDispatch();
}
public void createEmail(String receiver,String cc,String subject, String body, String attachments[])
{
Dispatch mail = Dispatch.call(outlook,"CreateItem",email).toDispatch();
Dispatch inspector = Dispatch.get(mail, "GetInspector").getDispatch();
Dispatch recipients = Dispatch.call(mail, "Recipients").getDispatch();
Dispatch.call(recipients, "Add" , receiver);
Dispatch.put(mail, "CC",cc);
Dispatch.put(mail, "Subject", subject);
Dispatch.put(mail, "Body", body);
if(attachments.length>0)
{
Dispatch attachs = Dispatch.get(mail, "Attachments").toDispatch();
for(Object attachment : attachments)
{
Dispatch.call(attachs, "Add", attachment);
}
}
Dispatch.call(mail, "Send");
}
}谢谢。
Med
发布于 2018-04-09 23:13:22
您必须将代码传输到客户端并在那里执行它。这对于java applet来说是可能的,但是最近已经被移除/禁用。另一种可能是java web start技术,它可以为您做到这一点。然而,它也支持will be removed in future版本的java。因此,现在我们对您的场景了解得太少了,但我建议您再次进行一些评估/分析。根据您的需求,有几种可能性,人们只能猜测最适合您的选项是什么。一些选项:
之外
https://stackoverflow.com/questions/49698419
复制相似问题