java - 等待邮件未通过 jacob 发送/关闭

标签 java vba email outlook jacob

我的应用程序与 jacob 发送电子邮件。 现在我想在某些情况下打开邮件并等待用户按发送(或者他关闭邮件)

ActiveXComponent axcOutlook = new ActiveXComponent("Outlook.Application");
Dispatch mail = Dispatch.invoke(axcOutlook.getObject(), "CreateItem", Dispatch.Get, new Object[] { "0" }, new int[0]).toDispatch();
...
Dispatch.put(mail, "Subject", subject);
Dispatch.put(mail, "Body", sbBody.toString());
Dispatch.put(mail, "ReadReceiptRequested", "false");
Dispatch.call(mail, "Display");
//And here I want to wait till the Mail is sent/closed

我已经尝试过 while(true) 循环

while (true) {
    if (Dispatch.get(mail, "Sent").getBoolean()) {
        return;
    }
}

但是通过这种方法我得到了一个异常(exception)(在我发送邮件之后):

com.jacob.com.ComFailException:调用:已发送

来源:Microsoft Outlook

描述:元素已移动或删除。

最佳答案

您需要处理Send MailItem 类的事件,当用户为某个项目选择“发送”操作时将触发该事件。

您还可以找到ItemSend Application 类的事件,每当用户通过检查器发送 Microsoft Outlook 项目时(在检查器关闭之前,但在用户单击“发送”按钮之后)或在 Outlook 项目的 Send 方法(例如作为 MailItem,在程序中使用。请注意,如果事件过程将 Cancel 参数设置为 true,则发送操作未完成并且检查器保持打开状态。

关于java - 等待邮件未通过 jacob 发送/关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519010/

相关文章:

java - JFileChooser 图像到缓冲图像

在单元格更改上执行代码的 VBA 无法处理名称更改

arrays - 跳过数组中的列

javascript - 尝试在 html 电子邮件中插入一个 ajax 调用

python - 如何使用 python 在电子邮件正文中附加 HTML

java - 仅在从启动器启动应用程序时显示启动画面

java - 具有特定 EBS 卷大小 Java SDK 的 Amazon EC2 实例

java - 为什么 HttpURLConnection API 中有流?

security - 重置密码好还是发回丢失的密码好?

VBA 定时器类