【问题标题】:Integrating Tomcat and Microsoft Outlook using Jacob使用 Jacob 集成 Tomcat 和 Microsoft Outlook
【发布时间】:2018-04-09 23:13:22
【问题描述】:

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

谢谢。

医学

【问题讨论】:

    标签: java tomcat outlook jacob


    【解决方案1】:

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

    您必须将代码传输到客户端并在那里执行。这可以通过 java 小程序实现,但最近已被删除/禁用。另一种可能性是可以为您做到这一点的 java web start 技术。但是也支持 web start 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 表单并从服务器发送电子邮件(这比您想象的要容易,除了电子邮件基础设施问题)
    • ...更多选项

    【讨论】:

      猜你喜欢
      • 2011-03-04
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 2018-05-07
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      相关资源
      最近更新 更多