@Component(value="imap_ImapManager") public class ImapManagerImpl extends java.lang.Object implements ImapManager
Modifier and Type | Class and Description |
---|---|
protected static interface |
ImapManagerImpl.ImapFunction<INPUT,OUTPUT> |
Modifier and Type | Field and Description |
---|---|
protected ImapHelper |
imapHelper |
protected ImapOperations |
imapOperations |
protected io.jmix.core.Metadata |
metadata |
Constructor and Description |
---|
ImapManagerImpl() |
Modifier and Type | Method and Description |
---|---|
protected <T> T |
consumeMessage(ImapMessage msg,
ImapManagerImpl.ImapFunction<com.sun.mail.imap.IMAPMessage,T> consumer,
java.lang.String actionDescription) |
void |
deleteMessage(ImapMessage message)
Delete message
|
protected void |
doMove(ImapMessage msg,
java.lang.String newFolderName,
ImapMailBox mailBox) |
java.util.Collection<ImapFolderDto> |
fetchFolders(ImapMailBox box)
Retrieve all folders of mailbox preserving tree structure
|
java.util.List<ImapFolderDto> |
fetchFolders(ImapMailBox box,
java.lang.String... folderNames)
Retrieve folders of mailbox with specified full names, result is presented in flat structure
hiding parent\child relationship
|
ImapMessageDto |
fetchMessage(ImapMessage message)
Retrieve single message
|
protected java.util.List<java.lang.String> |
getAddressList(javax.mail.Address[] addresses) |
protected java.util.List<java.lang.String> |
getFlags(javax.mail.Message message) |
void |
moveMessage(ImapMessage msg,
java.lang.String folderName)
Move message in different folder, if folder is the same - nothing changed,
if folder with specified full name doesn't exist - results in throwing
ImapException |
void |
setFlag(ImapMessage message,
ImapFlag flag,
boolean set)
Change meta data flag for message, flag can be either standard or custom one
|
ImapConnectResult |
testConnection(ImapMailBox box)
Check a connection for specified mail box
|
protected ImapMessageDto |
toDto(ImapMailBox mailBox,
ImapMessage imapMessage,
com.sun.mail.imap.IMAPMessage nativeMessage) |
@Autowired protected ImapHelper imapHelper
@Autowired protected ImapOperations imapOperations
@Autowired protected io.jmix.core.Metadata metadata
public ImapConnectResult testConnection(ImapMailBox box)
ImapManager
testConnection
in interface ImapManager
box
- mail box to connectpublic java.util.Collection<ImapFolderDto> fetchFolders(ImapMailBox box)
ImapManager
fetchFolders
in interface ImapManager
box
- IMAP mailbox connection detailspublic java.util.List<ImapFolderDto> fetchFolders(ImapMailBox box, java.lang.String... folderNames)
ImapManager
fetchFolders
in interface ImapManager
box
- IMAP mailbox connection detailsfolderNames
- full names of folders to retrievepublic ImapMessageDto fetchMessage(ImapMessage message)
ImapManager
fetchMessage
in interface ImapManager
message
- reference object for IMAP messageprotected ImapMessageDto toDto(ImapMailBox mailBox, ImapMessage imapMessage, com.sun.mail.imap.IMAPMessage nativeMessage) throws javax.mail.MessagingException
javax.mail.MessagingException
public void deleteMessage(ImapMessage message)
ImapManager
deleteMessage
in interface ImapManager
message
- reference object for IMAP messagepublic void moveMessage(ImapMessage msg, java.lang.String folderName)
ImapManager
ImapException
moveMessage
in interface ImapManager
msg
- reference object for IMAP messagefolderName
- full name of new folderprotected void doMove(ImapMessage msg, java.lang.String newFolderName, ImapMailBox mailBox)
public void setFlag(ImapMessage message, ImapFlag flag, boolean set)
ImapManager
setFlag
in interface ImapManager
message
- reference object for IMAP messageflag
- flag to changeset
- if true - set the flag, if false - clear the flagprotected <T> T consumeMessage(ImapMessage msg, ImapManagerImpl.ImapFunction<com.sun.mail.imap.IMAPMessage,T> consumer, java.lang.String actionDescription)
protected java.util.List<java.lang.String> getAddressList(javax.mail.Address[] addresses)
protected java.util.List<java.lang.String> getFlags(javax.mail.Message message) throws javax.mail.MessagingException
javax.mail.MessagingException