当前位置: 首页>>代码示例>>Java>>正文


Java FlagTerm类代码示例

本文整理汇总了Java中javax.mail.search.FlagTerm的典型用法代码示例。如果您正苦于以下问题:Java FlagTerm类的具体用法?Java FlagTerm怎么用?Java FlagTerm使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


FlagTerm类属于javax.mail.search包,在下文中一共展示了FlagTerm类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: fetchMails

import javax.mail.search.FlagTerm; //导入依赖的package包/类
@Override
public synchronized void fetchMails() {
    if(folders.get(inboxName).isOpen()){
        try {
            messages = folders.get(inboxName).search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
            folders.get(inboxName).fetch(messages, fetchProfile);

            // flag as seen
            folders.get(inboxName).setFlags(messages, new Flags(Flags.Flag.SEEN), true);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }else {
        logger.info("Inbox not open, trying to reconnect...");
        connectToServer();
        if(folders.get(inboxName).isOpen()){
            logger.info("Reconnect successful, fetching mails");
            fetchMails();
        }else{
            logger.error("Reconnect failed, inbox still not open.");
        }
    }
}
 
开发者ID:roberterdin,项目名称:thatsapp,代码行数:25,代码来源:IMAPMailAdapter.java

示例2: checkEmail

import javax.mail.search.FlagTerm; //导入依赖的package包/类
/**
 * Check the inbox for new messages, and process each message.
 */
public void checkEmail() {
	try {
		log("Checking email.", Level.INFO);
        Store store = connectStore();		
	    Folder inbox = store.getFolder("INBOX");
	    if (inbox == null) {
	      throw new BotException("Failed to check email, no INBOX.");
	    }
	    inbox.open(Folder.READ_WRITE);
           Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
           inbox.setFlags(messages, new Flags(Flags.Flag.SEEN), true);
	    //Message[] messages = inbox.getMessages();
	    if ((messages != null) && (messages.length > 0)) {
   			log("Processing emails", Level.INFO, messages.length);
			Network memory = getBot().memory().newMemory();
			Vertex sense = memory.createVertex(getPrimitive());
			Vertex vertex = sense.getRelationship(Primitive.LASTMESSAGE);
			long lastMessage = 0;
			if (vertex != null) {
				lastMessage = ((Number)vertex.getData()).longValue();
			}
			long maxMessage = 0;
			int count = 0;
			// Increase script timeout.
			Language language = getBot().mind().getThought(Language.class);
			int timeout = language.getMaxStateProcess();
			language.setMaxStateProcess(timeout * 2);
			try {
			    for (int index = 0; index < messages.length; index++) {
			    	if (index > (this.maxEmails * 2)) {
		    			log("Max old email limit reached", Level.WARNING, this.maxEmails * 2);
			    		break;
			    	}
			    	long recievedTime = 0;
			    	if (messages[index].getReceivedDate() == null) {
		    			log("Missing received date", Level.FINE, messages[index].getSubject());
			    		recievedTime = messages[index].getSentDate().getTime();
			    	} else {
			    		recievedTime = messages[index].getReceivedDate().getTime();
			    	}
			    	if ((System.currentTimeMillis() - recievedTime) > DAY) {
						log("Day old email", Level.INFO, messages[index].getSubject());
			    		continue;
			    	}
			    	if (recievedTime > lastMessage) {
			    		count++;
			    		if (count > this.maxEmails) {
			    			log("Max email limit reached", Level.WARNING, this.maxEmails);
			    			break;
			    		}
			    		input(messages[index]);
				    	Utils.sleep(100);
				    	if (recievedTime > maxMessage) {
				    		maxMessage = recievedTime;
				    	}
			    	}
			    }
			    if (maxMessage != 0) {
					sense.setRelationship(Primitive.LASTMESSAGE, memory.createVertex(maxMessage));
			    	memory.save();
			    }
			} finally {
				language.setMaxStateProcess(timeout);
			}
	    }
		log("Done checking email.", Level.INFO);
	    inbox.close(false);
	    store.close();
	} catch (MessagingException exception) {
		log(exception);
	}
}
 
开发者ID:BotLibre,项目名称:BotLibre,代码行数:76,代码来源:Email.java

示例3: getInbox

import javax.mail.search.FlagTerm; //导入依赖的package包/类
/**
 * Return a list in inbox message headers.
 */
public List<String> getInbox() {
	List<String> emails = new ArrayList<String>();
	Store store = null;
	Folder inbox = null;
	try {
		store = connectStore();		
	    inbox = store.getFolder("INBOX");
	    if (inbox == null) {
	      log(new BotException("Failed to access inbox, no INBOX."));
	    }
	    inbox.open(Folder.READ_ONLY);
	    
           Message[] messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
	    //Message[] messages = inbox.getMessages(1, Math.min(inbox.getMessageCount(), 50));
	    for (int index = 0; index < 10 && index < messages.length; index++) {
	      emails.add(0, messages[index].getReceivedDate() + " - " + String.valueOf(getFrom(messages[index])) + ": " + messages[index].getSubject());
	    }
	    inbox.close(false);
	    store.close();
	} catch (MessagingException exception) {
		log(new BotException("Failed to access email: " + exception.getMessage(), exception));
	} finally {
		try {
			if (inbox != null) {
				inbox.close(false);
			}
			if (store != null) {
				store.close();
			}
		} catch (Exception ignore) {}
	}
	return emails;
}
 
开发者ID:BotLibre,项目名称:BotLibre,代码行数:37,代码来源:Email.java

示例4: checkMessages

import javax.mail.search.FlagTerm; //导入依赖的package包/类
protected void checkMessages(Store store, Session session) throws MessagingException {
    if (!store.isConnected()) {
        store.connect();
    }

    // open the default folder
    Folder folder = store.getDefaultFolder();
    if (!folder.exists()) {
        throw new MessagingException("No default (root) folder available");
    }

    // open the inbox
    folder = folder.getFolder(INBOX);
    if (!folder.exists()) {
        throw new MessagingException("No INBOX folder available");
    }

    // get the message count; stop if nothing to do
    folder.open(Folder.READ_WRITE);
    int totalMessages = folder.getMessageCount();
    if (totalMessages == 0) {
        folder.close(false);
        return;
    }

    // get all messages
    Message[] messages = folder.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
    FetchProfile profile = new FetchProfile();
    profile.add(FetchProfile.Item.ENVELOPE);
    profile.add(FetchProfile.Item.FLAGS);
    profile.add("X-Mailer");
    folder.fetch(messages, profile);

    // process each message
    for (Message message: messages) {
        // process each un-read message
        if (!message.isSet(Flags.Flag.SEEN)) {
            long messageSize = message.getSize();
            if (message instanceof MimeMessage && messageSize >= maxSize) {
                Debug.logWarning("Message from: " + message.getFrom()[0] + "not received, too big, size:" + messageSize + " cannot be more than " + maxSize + " bytes", module);

                // set the message as read so it doesn't continue to try to process; but don't delete it
                message.setFlag(Flags.Flag.SEEN, true);
            } else {
                this.processMessage(message, session);
                if (Debug.verboseOn()) Debug.logVerbose("Message from " + UtilMisc.toListArray(message.getFrom()) + " with subject [" + message.getSubject() + "]  has been processed." , module);
                message.setFlag(Flags.Flag.SEEN, true);
                if (Debug.verboseOn()) Debug.logVerbose("Message [" + message.getSubject() + "] is marked seen", module);

                // delete the message after processing
                if (deleteMail) {
                    if (Debug.verboseOn()) Debug.logVerbose("Message [" + message.getSubject() + "] is being deleted", module);
                    message.setFlag(Flags.Flag.DELETED, true);
                }
            }
        }
    }

    // expunge and close the folder
    folder.close(true);
}
 
开发者ID:gildaslemoal,项目名称:elpi,代码行数:62,代码来源:JavaMailContainer.java

示例5: doActionGmail

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public synchronized static boolean doActionGmail(MessageProcess f,
		int attempts) {
	try {
		Properties props = System.getProperties();
		props.setProperty("mail.smtp.host", "smtp.gmail.com");
		props.setProperty("mail.smtp.socketFactory.port", "465");
		props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
		props.setProperty("mail.smtp.auth", "true");
		props.setProperty("mail.smtp.port", "465");
		
		Session session = Session.getDefaultInstance(props, null);
		Store store = session.getStore("imaps");
		store.connect("smtp.gmail.com", DefaultUserConf.EMAIL,
				DefaultUserConf.PASSWORD);

		Folder inbox = store.getFolder("Inbox");
		inbox.open(Folder.READ_WRITE);

		// Get directory
		Flags seen = new Flags(Flags.Flag.SEEN);
		FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
		Message messages[] = inbox.search(unseenFlagTerm);

		for (int i = 0; i < messages.length; i++) {
			f.treatMessage(messages[i]);
		}

		// Close connection
		inbox.close(true);
		store.close();

		return true;
	} catch (Exception e) {
		Logger.traceERROR(e);
		Logger.traceERROR("Attempts : " + attempts + " / " + MAX_ATTEMPS);
		if (attempts > MAX_ATTEMPS) {
			return false;
		} else {
			doActionGmail(f, attempts++);
		}
	}
	return false;
}
 
开发者ID:philipperemy,项目名称:Leboncoin,代码行数:44,代码来源:MailManager.java

示例6: doActionAEI

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public synchronized static boolean doActionAEI(MessageProcess f,
		int attempts) {
	try {
		Properties props = new Properties();
		props.put("mail.smtp.host", "ssl0.ovh.net");
		props.put("mail.smtp.socketFactory.port", "465");
		props.put("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", "465");

		Session session = Session.getDefaultInstance(props,
				new javax.mail.Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication(
								"philippe.remy%junior-aei.com", "phremy");
					}
				});

		Store store = session.getStore("imap");
		store.connect("ssl0.ovh.net", "philippe.remy%junior-aei.com",
				"phremy");

		// Get folder
		Folder inbox = store.getFolder("INBOX");
		inbox.open(Folder.READ_WRITE);

		// Get directory
		Flags seen = new Flags(Flags.Flag.SEEN);
		FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
		Message messages[] = inbox.search(unseenFlagTerm);

		for (int i = 0; i < messages.length; i++) {
			f.treatMessage(messages[i]);
		}

		// Close connection
		inbox.close(true);
		store.close();

		return true;
	} catch (Exception e) {
		Logger.traceERROR(e);
		Logger.traceERROR("Attempts : " + attempts + " / " + MAX_ATTEMPS);
		if (attempts > MAX_ATTEMPS) {
			return false;
		} else {
			doActionAEI(f, attempts++);
		}
	}

	return false;
}
 
开发者ID:philipperemy,项目名称:Leboncoin,代码行数:54,代码来源:MailManager.java

示例7: getFlagChangesOfMessages

import javax.mail.search.FlagTerm; //导入依赖的package包/类
private MessageListResult getFlagChangesOfMessages(TreeSet<MessageListElement> loadedMessages) throws MessagingException {
  
  List<MessageListElement> emails = new LinkedList<MessageListElement>();
  Store store = getStore(account);
  
  if (store == null || !store.isConnected()) {
    return new MessageListResult(emails, MessageListResult.ResultType.ERROR);
  }
  IMAPFolder imapFolder = (IMAPFolder)store.getFolder(accountFolder.folder);
  imapFolder.open(Folder.READ_ONLY);
  UIDFolder uidFolder = imapFolder;
  
  long smallestUID = getSmallestUID(loadedMessages);

  Message messages[] = imapFolder.getMessagesByUID(smallestUID, UIDFolder.LASTUID);

  FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
  Message unseenMsgs[] = imapFolder.search(ft, messages);

  addMessagesToListAs(uidFolder, emails, unseenMsgs, loadedMessages, false);

  // searching for seen messages
  List<Message> seenMessages = new ArrayList<Message>(Arrays.asList(messages));
  for (int k = 0; k < unseenMsgs.length; k++) {
    String unseenUid = Long.toString(uidFolder.getUID(unseenMsgs[k]));
    for (int l = 0; l < seenMessages.size(); ) {
      String seenUid = Long.toString(uidFolder.getUID(seenMessages.get(l)));
      if (seenUid.equals(unseenUid)) {
        seenMessages.remove(l);
      } else {
        l++;
      }
    }
  }

  addMessagesToListAs(uidFolder, emails, seenMessages.toArray(new Message[seenMessages.size()]), loadedMessages, true);

  imapFolder.close(false);

  return new MessageListResult(emails, MessageListResult.ResultType.FLAG_CHANGE);
}
 
开发者ID:k-kojak,项目名称:yako,代码行数:42,代码来源:SimpleEmailMessageProvider.java

示例8: getNewEmails

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public List<Mail> getNewEmails(MailCredentials credentials) throws MessagingException, IOException {
	Properties properties = getServerProperties(credentials.getProtocol(), credentials.getHost(),
			"" + credentials.getPort());
	Session session = Session.getDefaultInstance(properties);

	// connects to the message store
	Store store = session.getStore(credentials.getProtocol());
	store.connect(credentials.getUsername(), credentials.getPassword());

	logger.debug("url:" + store.getURLName());
	// opens the inbox folder
	Folder folderInbox = store.getFolder("INBOX");
	folderInbox.open(Folder.READ_ONLY);

	logger.debug("unread:" + folderInbox.getUnreadMessageCount() + ", new:" + folderInbox.getNewMessageCount());

	// fetches new messages from server
	FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
	Message messages[] = folderInbox.search(ft);

	List<Mail> mails = getMails(messages);

	// disconnect
	folderInbox.close(false);
	store.close();
	return Lists.reverse(mails);
}
 
开发者ID:HTWK-App,项目名称:Server-Application,代码行数:28,代码来源:EmailReceiver.java

示例9: invokeTarget

import javax.mail.search.FlagTerm; //导入依赖的package包/类
@Override
public Object invokeTarget() throws Exception {
  // poll only messages which are not deleted
  Message[] messages = target.search(new FlagTerm(new Flags(Flag.DELETED), false));

  return Arrays.asList(messages);
}
 
开发者ID:camunda,项目名称:camunda-bpm-mail,代码行数:8,代码来源:PollMailInvocation.java

示例10: getSearchTerm

import javax.mail.search.FlagTerm; //导入依赖的package包/类
/**
 * Returns a <pre>{@link SearchTerm}</pre> to be used when retrieving messages.
 * Default term is only for unseen emails, but when retrieveSeenEmails is
 * set to true it returns a union of terms for both unseen and seen messages.
 *
 * @return a search term to be used for message retrieval.
 */
private SearchTerm getSearchTerm() {
    Flags seenFlag = new Flags(Flag.SEEN);
    FlagTerm unseenFlagTerm = new FlagTerm(seenFlag, false);
    if (retrieveSeenEmails) {
        FlagTerm seenFlagTerm = new FlagTerm(seenFlag, true);
        return new OrTerm(unseenFlagTerm, seenFlagTerm);
    }
    return unseenFlagTerm;
}
 
开发者ID:theparanoidtimes,项目名称:tabellarium,代码行数:17,代码来源:ImapMailboxFolderTaskExecutor.java

示例11: search

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public synchronized Message[] search(SearchTerm paramSearchTerm) throws MessagingException {
    if (paramSearchTerm instanceof FlagTerm) {
        FlagTerm flagTerm = (FlagTerm) paramSearchTerm;
        Flags flags = flagTerm.getFlags();
        if (flags.equals(new Flags(Flags.Flag.SEEN))) {
            try {
                return getUnreadMessage(0);
            } catch (Exception e) {
                throw new MessagingException(e.getMessage(),e);
            }
        }
    }
    throw new MessagingException("Ews folder don't support search with search term " + paramSearchTerm);
}
 
开发者ID:gartcimore,项目名称:javamail4ews,代码行数:15,代码来源:EwsFolder.java

示例12: run

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public void run()
{
	try
	{
		Properties props = new Properties();
		//props.put("mail.debug", "true");

		Session session = Session.getInstance(props);
		int port = Integer.parseInt(worker.getParams().get("port"));
		String storeType = port == 993 ? "imaps" : "imap";
		Store store = session.getStore(storeType);
		
		logger.info("Request " + worker.getParams().get("host"));

		store.connect(worker.getParams().get("host"), port, worker.getParams().get("username"), worker.getParams().get("password"));

		Folder inbox;
		if(worker.getParams().get("folder") == null || worker.getParams().get("folder").isEmpty())
		{
			inbox = store.getFolder("Inbox");
		}
		else
		{
			inbox = store.getFolder(worker.getParams().get("folder"));
		}

		inbox.open(Folder.READ_ONLY);

		javax.mail.Message[] messages;
		if(worker.getLastRequest() != null)
		{
			messages = inbox.search(new ReceivedDateTerm(ComparisonTerm.GT, worker.getLastRequest()));
		}
		else
		{
			messages = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));
		}

		for(int i = 0; i < messages.length; i++)
		{
			String mid = messages[i].getHeader("Message-ID").toString();
			if(mid == null || mid.isEmpty())
			{
				mid = "urn:" + worker.getParams().get("host") + ":" + messages[i].getMessageNumber();
			}

			Address[] addresses = messages[i].getFrom();
			StringBuilder from = new StringBuilder();
			StringBuilder producer = new StringBuilder();
			if(addresses != null && addresses.length >= 1)
			{
				from.append(addresses[0].toString());

				for(int j = 0; j < addresses.length; j++)
				{
					producer.append(addresses[j].toString());
				}
			}

			Message message = new Message();
			message.setMid(mid);
			message.setUrl("mailto://" + from.toString());
			message.setMessage(messages[i].getSubject());
			message.setDate(messages[i].getReceivedDate());
			message.setProducer(producer.toString());

			queue.push(this, message);
		}

		inbox.close(false);
		store.close();
	}
	catch (Exception e)
	{
		logger.error(e.getMessage(), e);
	}
}
 
开发者ID:k42b3,项目名称:quantum,代码行数:78,代码来源:MailImapWorker.java

示例13: initSearchCriterions

import javax.mail.search.FlagTerm; //导入依赖的package包/类
/**
 * Populate all the search criterions in searchCriterion map
 */
private void initSearchCriterions() {
    searchCriterion = new EnumMap<SearchCriterion, FlagTerm>(
            SearchCriterion.class);
    Flags seen = new Flags(Flags.Flag.SEEN);
    FlagTerm unseenFlagTerm = new FlagTerm(seen, false);
    searchCriterion.put(SearchCriterion.UNREAD, unseenFlagTerm);
}
 
开发者ID:apache,项目名称:airavata,代码行数:11,代码来源:GmailSMTPMailBox.java

示例14: unseen

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public SearchTermBuilder unseen(Op op) {
    SearchTerm st = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
    addTerm(op, st);
    return this;
}
 
开发者ID:HydAu,项目名称:Camel,代码行数:6,代码来源:SearchTermBuilder.java

示例15: flag

import javax.mail.search.FlagTerm; //导入依赖的package包/类
public SearchTermBuilder flag(Op op, Flags flags, boolean set) {
    SearchTerm st = new FlagTerm(flags, set);
    addTerm(op, st);
    return this;
}
 
开发者ID:HydAu,项目名称:Camel,代码行数:6,代码来源:SearchTermBuilder.java


注:本文中的javax.mail.search.FlagTerm类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。