Java 类javax.mail.Flags.Flag 实例源码
项目:oscm
文件:MailReader.java
/**
* Connect to the mail server and delete all mails.
*/
public void deleteMails() throws MessagingException {
Folder folder = getStore().getFolder(MAIL_INBOX);
folder.open(Folder.READ_WRITE);
// Get folder's list of messages.
Message[] messages = folder.getMessages();
// Retrieve message headers for each message in folder.
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
folder.fetch(messages, profile);
for (Message message : messages) {
message.setFlag(Flags.Flag.DELETED, true);
}
folder.close(true);
}
项目:alfresco-repository
文件:AlfrescoImapFolder.java
/**
* Creates the EML message in the specified folder.
*
* @param folderFileInfo The folder to create message in.
* @param message The original MimeMessage.
* @return ID of the new message created
* @throws FileNotFoundException
* @throws FileExistsException
* @throws MessagingException
* @throws IOException
*/
private long createMimeMessageInFolder(
FileInfo folderFileInfo,
MimeMessage message,
Flags flags)
throws FileExistsException, FileNotFoundException, IOException, MessagingException
{
String name = AlfrescoImapConst.MESSAGE_PREFIX + GUID.generate();
FileFolderService fileFolderService = serviceRegistry.getFileFolderService();
FileInfo messageFile = fileFolderService.create(folderFileInfo.getNodeRef(), name, ContentModel.TYPE_CONTENT);
final long newMessageUid = (Long) messageFile.getProperties().get(ContentModel.PROP_NODE_DBID);
name = AlfrescoImapConst.MESSAGE_PREFIX + newMessageUid + AlfrescoImapConst.EML_EXTENSION;
fileFolderService.rename(messageFile.getNodeRef(), name);
Flags newFlags = new Flags(flags);
newFlags.add(Flag.RECENT);
imapService.setFlags(messageFile, newFlags, true);
if (extractAttachmentsEnabled)
{
imapService.extractAttachments(messageFile.getNodeRef(), message);
}
// Force persistence of the message to the repository
new IncomingImapMessage(messageFile, serviceRegistry, message);
return newMessageUid;
}
项目:community-edition-old
文件:ImapServiceImpl.java
@Override
public void onRestoreNode(final ChildAssociationRef childAssocRef)
{
doAsSystem(new RunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
NodeRef childNodeRef = childAssocRef.getChildRef();
if (serviceRegistry.getDictionaryService().isSubClass(nodeService.getType(childNodeRef), ContentModel.TYPE_CONTENT))
{
setFlag(childNodeRef, Flags.Flag.DELETED, false);
setFlag(childNodeRef, Flags.Flag.SEEN, false);
}
NodeRef folderRef = childAssocRef.getParentRef();
long newId = (Long) nodeService.getProperty(childNodeRef, ContentModel.PROP_NODE_DBID);
if (nodeService.hasAspect(folderRef, ImapModel.ASPECT_IMAP_FOLDER))
{
// Force generation of a new change token and updating the UIDVALIDITY
getUidValidityTransactionListener(folderRef).recordNewUid(newId);
}
return null;
}
});
}
项目:elasticsearch-imap
文件:AbstractIMAPRiverUnitTest.java
protected void deleteMailsFromUserMailbox(final Properties props, final String folderName, final int start, final int deleteCount,
final String user, final String password) throws MessagingException {
final Store store = Session.getInstance(props).getStore();
store.connect(user, password);
checkStoreForTestConnection(store);
final Folder f = store.getFolder(folderName);
f.open(Folder.READ_WRITE);
final int msgCount = f.getMessageCount();
final Message[] m = deleteCount == -1 ? f.getMessages() : f.getMessages(start, Math.min(msgCount, deleteCount + start - 1));
int d = 0;
for (final Message message : m) {
message.setFlag(Flag.DELETED, true);
logger.info("Delete msgnum: {} with sid {}", message.getMessageNumber(), message.getSubject());
d++;
}
f.close(true);
logger.info("Deleted " + d + " messages");
store.close();
}
项目:Server-Application
文件:EmailReceiver.java
public void changeMailStatus(int mailId, Flag flag, MailCredentials credentials) throws MessagingException {
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());
// opens the inbox folder
Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_WRITE);
logger.debug("unread:" + folderInbox.getUnreadMessageCount() + ", new:" + folderInbox.getNewMessageCount());
// fetches new messages from server
int msgnum[] = new int[] { mailId };
Message[] messages = folderInbox.getMessages(msgnum);
if (messages.length == 1 && messages[0] != null) {
messages[0].setFlag(flag, true);
}
folderInbox.close(false);
store.close();
}
项目:alfresco-repository
文件:ImapServiceImpl.java
public void expungeMessage(FileInfo fileInfo)
{
Flags flags = getFlags(fileInfo);
if (flags.contains(Flags.Flag.DELETED))
{
// See MNT-12259
//fileFolderService.delete(fileInfo.getNodeRef());
hideAndDelete(fileInfo.getNodeRef());
messageCache.remove(fileInfo.getNodeRef());
}
}
项目:alfresco-repository
文件:ImapServiceImpl.java
/**
* Set flags to the specified imapFolder.
*
* @param messageInfo FileInfo of imap Folder.
* @param flags flags to set.
* @param value value to set.
*/
public void setFlags(FileInfo messageInfo, Flags flags, boolean value)
{
checkForFlaggableAspect(messageInfo.getNodeRef());
for (Flags.Flag flag : flags.getSystemFlags())
{
setFlag(messageInfo, flag, value);
}
}
项目:alfresco-repository
文件:ImapServiceImpl.java
@Override
public void onRestoreNode(final ChildAssociationRef childAssocRef)
{
doAsSystem(new RunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
NodeRef childNodeRef = childAssocRef.getChildRef();
if (serviceRegistry.getDictionaryService().isSubClass(nodeService.getType(childNodeRef), ContentModel.TYPE_CONTENT))
{
setFlag(childNodeRef, Flags.Flag.DELETED, false);
setFlag(childNodeRef, Flags.Flag.SEEN, false);
}
NodeRef folderRef = childAssocRef.getParentRef();
long newId = (Long) nodeService.getProperty(childNodeRef, ContentModel.PROP_NODE_DBID);
if (nodeService.hasAspect(folderRef, ImapModel.ASPECT_IMAP_FOLDER))
{
// Force generation of a new change token and updating the UIDVALIDITY
getUidValidityTransactionListener(folderRef).recordNewUid(newId);
}
return null;
}
});
}
项目:alfresco-repository
文件:AlfrescoImapFolder.java
/**
* Moves the node <code>sourceNodeRef</code> extracted from the message id.
* A part of a complex move operation.
*
* @param folderInfo FileInfo
* @param message MimeMessage
* @param flags Flags
* @param sourceNodeRef NodeRef
* @return UUID of the moved node
* @throws FileExistsException
* @throws FileNotFoundException
*/
@SuppressWarnings("deprecation")
private long copyOrMoveNode(FileInfo folderInfo, MimeMessage message, Flags flags, NodeRef sourceNodeRef, boolean move)
throws FileExistsException, FileNotFoundException
{
FileFolderService fileFolderService = serviceRegistry.getFileFolderService();
FileFilterMode.setClient(FileFilterMode.Client.imap);
FileInfo messageFile = null;
if (move)
{
fileFolderService.setHidden(sourceNodeRef, false);
messageFile = fileFolderService.move(sourceNodeRef, folderInfo.getNodeRef(), null);
}
else
{
NodeRef newNodeRef = serviceRegistry.getCopyService().copyAndRename(sourceNodeRef, folderInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, null, false);
fileFolderService.setHidden(newNodeRef, false);
messageFile = fileFolderService.getFileInfo(newNodeRef);
}
final long newMessageUid = (Long) messageFile.getProperties().get(ContentModel.PROP_NODE_DBID);
imapService.persistMessageHeaders(messageFile.getNodeRef(), message);
Flags newFlags = new Flags(flags);
newFlags.add(Flag.RECENT);
imapService.setFlags(messageFile, newFlags, true);
imapService.setFlag(messageFile, Flag.DELETED, false);
return newMessageUid;
}
项目:alfresco-repository
文件:AlfrescoImapFolder.java
/**
* Marks all messages in the folder as deleted using {@link javax.mail.Flags.Flag#DELETED} flag.
*/
@Override
public void deleteAllMessagesInternal() throws FolderException
{
if (isReadOnly())
{
throw new FolderException("Can't delete all - Permission denied");
}
for (Map.Entry<Long, FileInfo> entry : searchMails().entrySet())
{
imapService.setFlag(entry.getValue(), Flags.Flag.DELETED, true);
// comment out to physically remove content.
// fileFolderService.delete(fileInfo.getNodeRef());
}
}
项目:alfresco-repository
文件:AlfrescoImapFolder.java
/**
* Returns the list of messages that have no {@link javax.mail.Flags.Flag#DELETED} flag set for current user.
*
* @return the list of non-deleted messages.
*/
@Override
protected List<SimpleStoredMessage> getNonDeletedMessagesInternal()
{
if (logger.isDebugEnabled())
{
logger.debug("[getNonDeletedMessagesInternal] " + this);
}
List<SimpleStoredMessage> result = new ArrayList<SimpleStoredMessage>();
Collection<SimpleStoredMessage> values = getMessagesInternal();
for (SimpleStoredMessage message : values)
{
if (!getFlags(message).contains(Flags.Flag.DELETED))
{
result.add(message);
}
}
if (logger.isDebugEnabled() && folderInfo != null)
{
logger.debug(folderInfo.getName() + " - Non deleted messages count:" + result.size());
}
return result;
}
项目:alfresco-repository
文件:AlfrescoImapFolder.java
/**
* Returns count of messages with {@link javax.mail.Flags.Flag#RECENT} flag.
* If {@code reset} parameter is {@code true} - removes {@link javax.mail.Flags.Flag#RECENT} flag from
* the message for current user.
*
* @param reset - if true the {@link javax.mail.Flags.Flag#RECENT} will be deleted for current user if exists.
* @return returns count of recent messages.
*/
@Override
public int getRecentCount(boolean reset)
{
int recent = getFolderStatus().recentCount;
if (reset && recent > 0)
{
CommandCallback<Void> command = new CommandCallback<Void>()
{
public Void command() throws Throwable
{
for (FileInfo fileInfo : folderStatus.search.values())
{
Flags flags = imapService.getFlags(fileInfo);
if (flags.contains(Flags.Flag.RECENT))
{
imapService.setFlag(fileInfo, Flags.Flag.RECENT, false);
}
}
return null;
}
};
try
{
command.run();
}
catch (AccessDeniedException ade)
{
if (logger.isDebugEnabled())
{
logger.debug("Access denied to reset RECENT FLAG");
}
}
}
return recent;
}
项目:camunda-bpm-mail
文件:DeleteMailConnectorTest.java
@Test
public void deleteMailById() throws MessagingException {
MimeMessage[] mails = greenMail.getReceivedMessages();
String messageId = mails[0].getMessageID();
MailConnectors.deleteMails()
.createRequest()
.folder("INBOX")
.messageIds(messageId)
.execute();
mails = greenMail.getReceivedMessages();
assertThat(mails).hasSize(2);
assertThat(mails[0].isSet(Flag.DELETED)).isTrue();
assertThat(mails[1].isSet(Flag.DELETED)).isFalse();
}
项目:camunda-bpm-mail
文件:DeleteMailConnectorTest.java
@Test
public void folderFromConfiguration() throws MessagingException {
MailConnectors.deleteMails()
.createRequest()
.messageNumbers(1)
.execute();
MimeMessage[] mails = greenMail.getReceivedMessages();
assertThat(mails).hasSize(2);
assertThat(mails[0].isSet(Flag.DELETED)).isTrue();
assertThat(mails[1].isSet(Flag.DELETED)).isFalse();
}
项目:development
文件:MailReader.java
/**
* Connect to the mail server and delete all mails.
*/
public void deleteMails() throws MessagingException {
Folder folder = getStore().getFolder(MAIL_INBOX);
folder.open(Folder.READ_WRITE);
// Get folder's list of messages.
Message[] messages = folder.getMessages();
// Retrieve message headers for each message in folder.
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
folder.fetch(messages, profile);
for (Message message : messages) {
message.setFlag(Flags.Flag.DELETED, true);
}
folder.close(true);
}
项目:oldSyncopeIdM
文件:NotificationTest.java
private boolean verifyMail(final String sender, final String subject) {
LOG.info("Waiting for notification to be sent...");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
boolean found = false;
try {
Session session = Session.getDefaultInstance(
System.getProperties());
Store store = session.getStore("pop3");
store.connect(pop3Host, mailAddress, mailPassword);
Folder inbox = store.getFolder("INBOX");
assertNotNull(inbox);
inbox.open(Folder.READ_WRITE);
Message[] messages = inbox.getMessages();
for (int i = 0; i < messages.length; i++) {
if (sender.equals(messages[i].getFrom()[0].toString())
&& subject.equals(messages[i].getSubject())) {
found = true;
messages[i].setFlag(Flag.DELETED, true);
}
}
inbox.close(true);
store.close();
} catch (Throwable t) {
LOG.error("Unexpected exception", t);
fail("Unexpected exception while fetching e-mail");
}
return found;
}
项目:javamail4ews
文件:EwsFolder.java
private void markMessageRead(List<EwsMessage> messagesRead) throws MessagingException, Exception,
ServiceResponseException {
if (messagesRead == null || messagesRead.isEmpty())
return;
for (EwsMessage aMessage : messagesRead) {
EmailMessage aRawMessage = aMessage.getEmailMessage();
if (aMessage.getFlags().contains(Flag.SEEN)) {
aRawMessage.setIsRead(Boolean.TRUE);
} else {
aRawMessage.setIsRead(Boolean.FALSE);
}
aRawMessage.update(CONFLICT_RESOLUTION_MODE);
}
}
项目:javamail4ews
文件:EwsFolder.java
private Message[] deleteMessages(List<EwsMessage> messagesToDelete) throws MessagingException {
if (messagesToDelete == null || messagesToDelete.isEmpty())
return new Message[] {};
List<EwsMessage> lDeletedMessages = new ArrayList<EwsMessage>();
for (int i = messagesToDelete.size() - 1; i >= 0; i--) {
EwsMessage aMessage = messagesToDelete.get(i);
if (aMessage.getFlags().contains(Flag.DELETED)) {
try {
EmailMessage aRawMessage = aMessage.getEmailMessage();
aRawMessage.delete(DELETE_MODE);
} catch (Exception e) {
throw new MessagingException(e.getMessage(), e);
}
lDeletedMessages.add(aMessage);
messagesToDelete.remove(i);
}
}
Message[] retValue = lDeletedMessages.toArray(new Message[0]);
if (retValue.length > 0) {
notifyMessageRemovedListeners(true, retValue);
}
return retValue;
}
项目:Leboncoin
文件:ConfirmEmail.java
@Override
public void treatMessage(Message message) throws Exception
{
String sender = InternetAddress.toString(message.getFrom());
String subject = message.getSubject();
if (sender.contains("leboncoin.fr") && subject.contains("Activez votre annonce"))
{
Logger.traceINFO("Found confirmation mail - " + subject);
String url = extractConfirmationUrl(message.getContent().toString());
Logger.traceINFO("Sending confirmation : " + url);
HtmlPage confirmationPage = Client.get().getPage(url);
String confirmationStr = confirmationPage.asXml();
if (confirmationStr.contains("Vous nous avez d�j� envoy� une confirmation"))
{
Logger.traceERROR("Mail already confirmed. This is a huge error.");
}
Logger.traceINFO("Confirmation sent for mail - " + subject);
message.setFlag(Flag.SEEN, true);
}
}
项目:community-edition-old
文件:ImapServiceImpl.java
public void expungeMessage(FileInfo fileInfo)
{
Flags flags = getFlags(fileInfo);
if (flags.contains(Flags.Flag.DELETED))
{
// See MNT-12259
//fileFolderService.delete(fileInfo.getNodeRef());
hideAndDelete(fileInfo.getNodeRef());
messageCache.remove(fileInfo.getNodeRef());
}
}
项目:community-edition-old
文件:ImapServiceImpl.java
/**
* Set flags to the specified imapFolder.
*
* @param messageInfo FileInfo of imap Folder.
* @param flags flags to set.
* @param value value to set.
*/
public void setFlags(FileInfo messageInfo, Flags flags, boolean value)
{
checkForFlaggableAspect(messageInfo.getNodeRef());
for (Flags.Flag flag : flags.getSystemFlags())
{
setFlag(messageInfo, flag, value);
}
}
项目:community-edition-old
文件:AlfrescoImapFolder.java
/**
* Moves the node <code>sourceNodeRef</code> extracted from the message id.
* A part of a complex move operation.
*
* @param folderInfo FileInfo
* @param message MimeMessage
* @param flags Flags
* @param sourceNodeRef NodeRef
* @return UUID of the moved node
* @throws FileExistsException
* @throws FileNotFoundException
*/
@SuppressWarnings("deprecation")
private long copyOrMoveNode(FileInfo folderInfo, MimeMessage message, Flags flags, NodeRef sourceNodeRef, boolean move)
throws FileExistsException, FileNotFoundException
{
FileFolderService fileFolderService = serviceRegistry.getFileFolderService();
FileFilterMode.setClient(FileFilterMode.Client.imap);
FileInfo messageFile = null;
if (move)
{
fileFolderService.setHidden(sourceNodeRef, false);
messageFile = fileFolderService.move(sourceNodeRef, folderInfo.getNodeRef(), null);
}
else
{
NodeRef newNodeRef = serviceRegistry.getCopyService().copyAndRename(sourceNodeRef, folderInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, null, false);
fileFolderService.setHidden(newNodeRef, false);
messageFile = fileFolderService.getFileInfo(newNodeRef);
}
final long newMessageUid = (Long) messageFile.getProperties().get(ContentModel.PROP_NODE_DBID);
imapService.persistMessageHeaders(messageFile.getNodeRef(), message);
Flags newFlags = new Flags(flags);
newFlags.add(Flag.RECENT);
imapService.setFlags(messageFile, newFlags, true);
imapService.setFlag(messageFile, Flag.DELETED, false);
return newMessageUid;
}
项目:community-edition-old
文件:AlfrescoImapFolder.java
/**
* Marks all messages in the folder as deleted using {@link javax.mail.Flags.Flag#DELETED} flag.
*/
@Override
public void deleteAllMessagesInternal() throws FolderException
{
if (isReadOnly())
{
throw new FolderException("Can't delete all - Permission denied");
}
for (Map.Entry<Long, FileInfo> entry : searchMails().entrySet())
{
imapService.setFlag(entry.getValue(), Flags.Flag.DELETED, true);
// comment out to physically remove content.
// fileFolderService.delete(fileInfo.getNodeRef());
}
}
项目:community-edition-old
文件:AlfrescoImapFolder.java
/**
* Returns the list of messages that have no {@link javax.mail.Flags.Flag#DELETED} flag set for current user.
*
* @return the list of non-deleted messages.
*/
@Override
protected List<SimpleStoredMessage> getNonDeletedMessagesInternal()
{
if (logger.isDebugEnabled())
{
logger.debug("[getNonDeletedMessagesInternal] " + this);
}
List<SimpleStoredMessage> result = new ArrayList<SimpleStoredMessage>();
Collection<SimpleStoredMessage> values = getMessagesInternal();
for (SimpleStoredMessage message : values)
{
if (!getFlags(message).contains(Flags.Flag.DELETED))
{
result.add(message);
}
}
if (logger.isDebugEnabled() && folderInfo != null)
{
logger.debug(folderInfo.getName() + " - Non deleted messages count:" + result.size());
}
return result;
}
项目:community-edition-old
文件:AlfrescoImapFolder.java
/**
* Returns count of messages with {@link javax.mail.Flags.Flag#RECENT} flag.
* If {@code reset} parameter is {@code true} - removes {@link javax.mail.Flags.Flag#RECENT} flag from
* the message for current user.
*
* @param reset - if true the {@link javax.mail.Flags.Flag#RECENT} will be deleted for current user if exists.
* @return returns count of recent messages.
*/
@Override
public int getRecentCount(boolean reset)
{
int recent = getFolderStatus().recentCount;
if (reset && recent > 0)
{
CommandCallback<Void> command = new CommandCallback<Void>()
{
public Void command() throws Throwable
{
for (FileInfo fileInfo : folderStatus.search.values())
{
Flags flags = imapService.getFlags(fileInfo);
if (flags.contains(Flags.Flag.RECENT))
{
imapService.setFlag(fileInfo, Flags.Flag.RECENT, false);
}
}
return null;
}
};
try
{
command.run();
}
catch (AccessDeniedException ade)
{
if (logger.isDebugEnabled())
{
logger.debug("Access denied to reset RECENT FLAG");
}
}
}
return recent;
}
项目:javamail-mock2
文件:MailboxFolder.java
public synchronized Message[] expunge() throws MessagingException {
checkExists();
final List<Message> expunged = new ArrayList<Message>();
for (final Message msg : getByFlags(new Flags(Flag.DELETED), true)) {
expunged.add(messages.remove(((MockMessage) msg).getMockid()));
((MockMessage) msg).setExpunged(true);
for (final MailboxEventListener mailboxEventListener : mailboxEventListeners) {
mailboxEventListener.messageExpunged(this, (MockMessage) msg, true);
}
}
logger.debug(expunged.size() + " messages expunged (deleted) from" + getFullName());
return expunged.toArray(new Message[expunged.size()]);
}
项目:CryptMeme
文件:Email.java
/**
* Sets flags for this message. Flags not explicitly stored in metadata
* will be kept in-memory.
* @param flag The current state of flags for this message.
*/
@Override
public synchronized void setFlags(Flags flag, boolean set) throws MessagingException {
if (flag.contains(Flag.RECENT))
setRecent(set);
if (flag.contains(Flag.SEEN))
setUnread(!set);
if (flag.contains(Flag.ANSWERED))
setReplied(set);
if (flag.contains(Flag.DELETED))
setDeleted(set);
super.setFlags(flag, set);
}
项目:CryptMeme
文件:Email.java
/**
* Updates in-memory flags from stored metadata and returns them.
*/
@Override
public Flags getFlags() throws MessagingException {
super.setFlag(Flag.RECENT, isRecent());
super.setFlag(Flag.SEEN, !isUnread());
super.setFlag(Flag.ANSWERED, isReplied());
super.setFlag(Flag.DELETED, isDeleted());
return super.getFlags();
}
项目:jfunk
文件:StoreManager.java
private void doDeleteMessages(final Folder folder, final Collection<Message> messages) {
List<Message> messagesFiltered = FluentIterable.from(messages).filter(MessagePredicates.forRecipient(mailAccount.getAddress()))
.toList();
if (messagesFiltered.isEmpty()) {
return;
}
try {
log.debug("Flagging {} message(s) for deletion", messagesFiltered.size());
for (Message message : messagesFiltered) {
message.setFlag(Flag.DELETED, true);
}
folder.close(true);
log.debug("Expunged {} message(s)", messagesFiltered.size());
} catch (MessagingException ex) {
throw new MailException("Error deleting e-mail message", ex);
}
}
项目:Mailster
文件:MailBox.java
/**
* Writes mailbox to mbox format
*/
public void writeMailBoxToFile(String outputDirectory)
{
try
{
PrintWriter out = new PrintWriter(new FileWriter(
outputDirectory + File.separator + mailBoxID + ".mbox",
false));
for (StoredSmtpMessage msg : mails.values())
{
if (!msg.getFlags().contains(Flag.DELETED))
StreamUtilities.writeMessageToMBoxRDFormat(msg, out);
}
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
项目:Server-Application
文件:EmailReceiver.java
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);
}
项目:Server-Application
文件:EmailReceiver.java
private List<String> getFlags(Message msg) throws MessagingException {
List<String> returnedFlags = new ArrayList<String>();
Flags flags = msg.getFlags();
if (flags.contains(Flag.ANSWERED)) {
returnedFlags.add("answered");
} else if (flags.contains(Flag.DELETED)) {
returnedFlags.add("deleted");
} else if (flags.contains(Flag.DRAFT)) {
returnedFlags.add("draft");
} else if (flags.contains(Flag.RECENT)) {
returnedFlags.add("new");
} else if (flags.contains(Flag.SEEN)) {
returnedFlags.add("seen");
}
return returnedFlags;
}
项目:alfresco-repository
文件:ImapServiceImpl.java
@Override
public void onCreateChildAssociation(final ChildAssociationRef childAssocRef, boolean isNewNode)
{
doAsSystem(new RunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
NodeRef childNodeRef = childAssocRef.getChildRef();
if (serviceRegistry.getDictionaryService().isSubClass(nodeService.getType(childNodeRef), ContentModel.TYPE_CONTENT))
{
long newId = (Long) nodeService.getProperty(childNodeRef, ContentModel.PROP_NODE_DBID);
// Keep a record of minimum and maximum node IDs in this folder in this transaction and add a listener that will
// update the UIDVALIDITY and MAXUID properties appropriately. Also force generation of a new change token
getUidValidityTransactionListener(childAssocRef.getParentRef()).recordNewUid(newId);
// Flag new content as recent
setFlag(childNodeRef, Flags.Flag.RECENT, true);
}
if (logger.isDebugEnabled())
{
logger.debug("[onCreateChildAssociation] Association " + childAssocRef + " created. CHANGETOKEN will be changed.");
}
return null;
}
});
}
项目:oscm
文件:MailReader.java
public String[] readPassAndKeyFromEmail(boolean delete, String userName)
throws MessagingException {
// Download message headers from server.
int retries = 0;
String userPass = null;
String userKey = null;
while (retries < 40 && userPass == null) {
// Open main "INBOX" folder.
Folder folder = getStore().getFolder(MAIL_INBOX);
folder.open(Folder.READ_WRITE);
// Get folder's list of messages.
Message[] messages = folder.getMessages();
// Retrieve message headers for each message in folder.
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
folder.fetch(messages, profile);
for (Message message : messages) {
if (message.getSubject().equals(MAIL_SUBJECT_USER_ACCOUNT_CREATED_EN)) {
String content = getMessageContent(message);
String userNameFromEmail = readInformationFromGivenMail(MAIL_BODY_USERNAME_PATTERN_EN, content);
if (userName.equals(userNameFromEmail)) {
userKey = readInformationFromGivenMail(MAIL_BODY_USERKEY_PATTERN_EN, content);
userPass = readInformationFromGivenMail(MAIL_BODY_PASSWORD_PATTERN_EN, content);
if (delete) {
message.setFlag(Flag.DELETED, true);
}
break;
}
}
}
folder.close(true);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// ignored
}
retries++;
}
return new String[] {userKey, userPass};
}
项目:myfaces-trinidad
文件:MessageData.java
/**
* Create a new MessageData object given the message object.
*/
public MessageData(Message message) throws MessagingException
{
_message = message;
// cache the size just because it involves a calculation
_size = message.getSize() / 1024;
// cache this since the folder has to be open to get this:
_isRead = _message.isSet(Flag.SEEN);
_isDeleted = _message.isSet(Flag.DELETED);
}
项目:camunda-bpm-mail
文件:PollMailInvocation.java
@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);
}
项目:camunda-bpm-mail
文件:DeleteMailInvocation.java
@Override
public Object invokeTarget() throws Exception {
for (Message message : target) {
message.setFlag(Flag.DELETED, true);
}
return null;
}
项目:camunda-bpm-mail
文件:DeleteMailConnectorProcessTest.java
@Test
@Deployment(resources = "processes/mail-delete.bpmn")
public void deleteMailById() throws MessagingException {
MimeMessage[] mails = greenMail.getReceivedMessages();
String messageId = mails[0].getMessageID();
engineRule.getRuntimeService().startProcessInstanceByKey("delete-mail",
Variables.createVariables().putValue("messageId", messageId));
mails = greenMail.getReceivedMessages();
assertThat(mails).hasSize(2);
assertThat(mails[0].isSet(Flag.DELETED)).isTrue();
assertThat(mails[1].isSet(Flag.DELETED)).isFalse();
}