0

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

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

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

或者

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

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

第一个选项为我节省了使用 Outlook 的麻烦,但我担心电子邮件将只是文本(不确定是否有办法像 Outlook 文件一样上传整个电子邮件)

感谢您的任何指点

4

1 回答 1

1

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

我们通过使用 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而不仅仅是Message. 该MimeMessage课程使您可以完全访问所有附件、HTML 等,因此您应该能够访问您需要上传到您的 CRM 系统的所有内容。

于 2012-06-04T05:07:39.510 回答