All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jaeksoft.searchlib.crawler.mailbox.crawler.IMAP4Crawler Maven / Gradle / Ivy

Go to download

OpenSearchServer is a powerful, enterprise-class, search engine program. Using the web user interface, the crawlers (web, file, database, ...) and the REST/RESTFul API you will be able to integrate quickly and easily advanced full-text search capabilities in your application. OpenSearchServer runs on Windows and Linux/Unix/BSD.

There is a newer version: 1.5.14
Show newest version
/**   
 * License Agreement for OpenSearchServer
 *
 * Copyright (C) 2014 Emmanuel Keller / Jaeksoft
 * 
 * http://www.open-search-server.com
 * 
 * This file is part of OpenSearchServer.
 *
 * OpenSearchServer is free software: you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 * OpenSearchServer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with OpenSearchServer. 
 *  If not, see .
 **/

package com.jaeksoft.searchlib.crawler.mailbox.crawler;

import java.util.Properties;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;

import com.jaeksoft.searchlib.crawler.mailbox.MailboxProtocolEnum;
import com.sun.mail.imap.IMAPMessage;

public class IMAP4Crawler extends MailboxAbstractCrawler {

	@Override
	protected Store getStore() throws MessagingException {
		Properties properties = new Properties();
		properties.setProperty("mail.host", item.getServerName());
		properties.setProperty("mail.port",
				Integer.toString(item.getServerPort()));
		String storeProtocol = protocol == MailboxProtocolEnum.IMAP4 ? "imap"
				: "imaps";
		properties.setProperty("mail.transport.protocol", storeProtocol);
		Session session = Session.getInstance(properties,
				new javax.mail.Authenticator() {
					@Override
					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication(item.getUser(), item
								.getPassword());
					}
				});
		return session.getStore(storeProtocol);
	}

	@Override
	protected void connect(Store store) throws MessagingException {
		store.connect();
	}

	@Override
	protected String getMessageId(Folder folder, Message message)
			throws MessagingException {
		if (!(message instanceof IMAPMessage))
			return null;
		return ((IMAPMessage) message).getMessageID();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy