将 Outlook 电子邮件复制到文件夹或通过 javamail 阅读电子邮件



我们正在处理来自客户的许多电子邮件。每封主题行带有案例编号的电子邮件都会上传到我们的 CRM。目前,我们的分析师执行此过程,即他收到或发送的每封电子邮件都将电子邮件复制到桌面,然后将该文件上传到相关案例。

这是非常繁琐和耗时的。我的设计问题是这样的:

选项 1:通过 java 邮件阅读电子邮件,如果主题行有案例编号 - 只需获取内容和附件并将电子邮件上传到 crm。

选项 2:将 Outlook 电子邮件复制到桌面,然后将电子邮件作为文件上传到 crm。

我不确定,但看起来选项 2 更好,因为电子邮件中的所有内容(附件、文档、图表、照片)都将上传,当分析引用 caseid 时,他将能够"按原样"看到电子邮件(好像它来自 Outlook)。

第一个选项让我不必使用 outlook,但我担心电子邮件只会是文本(不确定是否有办法上传整个电子邮件,就好像它是 Outlook 文件一样

感谢您的任何指示

直接连接到邮件服务器的第一个选项实际上非常简单。

通过使用JavaMail登录我们的Exchange服务器,我们做了一些非常相似的事情:Java应用程序定期连接到Exchange并处理它找到的任何邮件。处理完电子邮件后,它会将其移动到另一个文件夹,这样就不会再次处理。

我不太明白你的第二个选项是如何工作的,但是将Java代码连接到Outlook对我来说听起来更困难。

下面概述了如何使用JavaMail在Exchange服务器上处理电子邮件。它应该适用于任何支持 IMAP 的邮件服务器:

public void processMailExample() {
   Store store = session.getStore(new javax.mail.URLName("imap://user:pass@mailserver..."));
   store.connect();
   Folder inputFolder = store.getFolder("INBOX");
   Folder outputFolder = store.getFolder("INBOX/Processed");
   inputFolder.open(Folder.READ_WRITE);
   Message[] messages = inputFolder.getMessages();
   for (Message message : messages) {
       // Process message here
       moveMessage(message, outputFolder);
   }
}
public void moveMessage(Message m, Folder to) throws MessagingException
{
    m.getFolder().copyMessages(new Message[] {m}, to);
    m.setFlag(Flag.DELETED, true);
    m.getFolder().expunge();
}

如果特定电子邮件有附件,那么它将是javax.mail.internet.MimeMessage的实例,而不仅仅是MessageMimeMessage类使您可以完全访问所有附件,HTML等,因此您应该能够访问上传到CRM系统所需的所有内容。

最新更新