你的第一个选择直接连接到邮件服务器实际上是非常简单的。
我们通过使用JavaMail登录到Exchange服务器来做类似的事情:Java应用程序定期连接到Exchange并处理它找到的所有邮件。一旦它处理了一封电子邮件,它就会将它移动到另一个文件夹,因此它不会再被处理。
我不太明白你的第二个选择是如何工作的,但将Java代码连接到Outlook听起来更难。
下面概述了如何使用JavaMail处理Exchange服务器上的电子邮件。应该为支持IMAP任何邮件服务器的工作:
public void processMailExample() {
Store store = session.getStore(new javax.mail.URLName("imap://user:[email protected]"));
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系统的所有内容。
太好了,让我试试这个并回到这个线程。 – adhg
抱歉,延迟(其他功能堆积)谢谢! – adhg