gpt4 book ai didi

java - 使用 Jacob 集成 Tomcat 和 Microsoft Outlook

转载 作者:行者123 更新时间:2023-11-28 22:25:01 25 4
gpt4 key购买 nike

我有一个在 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");
}
}

谢谢。

医学

最佳答案

由于您的代码在服务器上运行,因此它当然会在服务器上触发任何操作(例如启动 outlook,如果存在的话)。

您必须将代码传输到客户端并在那里执行。这对于 java 小程序是可能的,但是最近已被删除/禁用。另一种可能性是 java web start 技术,它可以为您做到这一点。但是也支持 web 启动 will be removed in future 版本的 java。所以现在我们对你的情况知之甚少,但我建议你再做一些评估/分析。根据您的要求,有多种可能性,只能猜测最适合您的选择。一些选项:

  • 使用 Java Web Start,因为您只需要在有限的时间内提供该功能
  • 您编写了一个独立的 Java 应用程序(因为例如您管理公司的所有客户)
  • 您使用 javascript 启动客户端上安装的任何电子邮件客户端(例如 window.location.href = "mailto:user@example.com?subject=Subject&body=message%20goes%20here";或者一些仅 IE 的解决方案 here
  • 您实现自己的 HTML 电子邮件 Web 表单并从服务器发送电子邮件(这比您想象的要容易,除了电子邮件基础设施问题)
  • ...更多选项

关于java - 使用 Jacob 集成 Tomcat 和 Microsoft Outlook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49698419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com