0

お客様からのメールを多数取り扱っております。ケース番号付きの件名を持つ各メールは、当社の CRM にアップロードされます。現在、アナリストがこのプロセスを行っています。つまり、アナリストが受信または送信するすべての電子メールをデスクトップにコピーし、後でそのファイルを関連するケースにアップロードします。

これは非常に面倒で時間がかかります。ここでの私のデザインの質問はこれです:

オプション 1: Java メールで電子メールを読み、件名にケース番号が含まれている場合は、コンテンツと添付ファイルを取得して、電子メールを CRM にアップロードします。

または

オプション 2: Outlook の電子メールをデスクトップにコピーしてから、電子メールをファイルとしてCRM にアップロードします。

よくわかりませんが、オプション 2 の方が優れているようです。なぜなら、電子メール内のすべて (添付ファイル、ドキュメント、図、写真) がアップロードされ、分析でケース ID が参照されるときに、電子メールを「そのまま」見ることができるからです。 ' (見通しからのように)。

最初のオプションは、Outlook で作業する手間を省きますが、電子メールはテキストのみになるのではないかと心配しています (電子メール全体を Outlook ファイルであるかのようにアップロードする方法があるかどうかはわかりません)。

ご指摘ありがとうございます

4

1 に答える 1

1

メールサーバーに直接接続する最初のオプションは、実際には非常に簡単です。

JavaMail を使用して Exchange サーバーにログインすることで、これとよく似たことを行います。Java アプリケーションは定期的に Exchange に接続し、検出したメールを処理します。電子メールを処理すると、別のフォルダーに移動して、再度処理されないようにします。

2 番目のオプションがどのように機能するかはよくわかりませんが、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 に答える