本文整理汇总了Java中javax.mail.Folder.fetch方法的典型用法代码示例。如果您正苦于以下问题:Java Folder.fetch方法的具体用法?Java Folder.fetch怎么用?Java Folder.fetch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.mail.Folder
的用法示例。
在下文中一共展示了Folder.fetch方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: deleteMails
import javax.mail.Folder; //导入方法依赖的package包/类
/**
* 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);
}
示例2: checkMessages
import javax.mail.Folder; //导入方法依赖的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);
}
示例3: getLastMailContentWithSubject
import javax.mail.Folder; //导入方法依赖的package包/类
/**
* Get the content of the last message with the given subject.
*
* @param subject
* the subject
* @return the content of the last message with the given subject
*/
public String getLastMailContentWithSubject(String subject)
throws MessagingException {
// Download message headers from server.
int retries = 0;
String content = null;
while (retries < 40) {
// 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(subject)) {
content = getMessageContent(message);
}
}
folder.close(true);
if (content != null) {
return content;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// ignored
}
retries++;
}
return "";
}
示例4: readPassAndKeyFromEmail
import javax.mail.Folder; //导入方法依赖的package包/类
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};
}
示例5: listFolderMessages
import javax.mail.Folder; //导入方法依赖的package包/类
public cfQueryResultData listFolderMessages( cfImapConnection imapConnection, String rootFolder, int startRow, int totalMessages, boolean reverseOrder ) {
cfQueryResultData query = new cfQueryResultData( new String[]{"subject","id","rxddate","sentdate","from","to","cc","bcc","size","lines","answered","deleted","draft","flagged","recent","seen"}, "CFIMAP" );
try{
Folder folderToList;
if ( rootFolder == null || rootFolder.length() == 0 )
folderToList = imapConnection.mailStore.getDefaultFolder();
else
folderToList = imapConnection.mailStore.getFolder(rootFolder);
if ( (folderToList.getType() & Folder.HOLDS_MESSAGES) != 0){
if ( !folderToList.isOpen() )
folderToList.open( Folder.READ_ONLY );
Message[] messageArray;
if ( startRow != -1 ){
int folderCount = folderToList.getMessageCount();
int start, end;
if ( !reverseOrder ){
start = startRow;
if ( folderCount < (startRow+totalMessages-1) ){
start = startRow;
end = folderCount;
}else{
end = startRow + totalMessages - 1;
}
}else{
end = folderCount - startRow + 1;
if ( folderCount < (startRow+totalMessages-1) ){
start = 1;
}else{
start = folderCount - startRow - totalMessages + 2;
}
}
messageArray = folderToList.getMessages( start, end );
imapConnection.setTotalMessages( folderCount );
}else{
messageArray = folderToList.getMessages();
imapConnection.setTotalMessages( messageArray.length );
}
// To improve performance, pre-fetch all of the message items
// used by the CFIMAP list action. This will retrieve all of the
// items for all of the messages with one single FETCH command.
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
fp.add(FetchProfile.Item.FLAGS);
fp.add(FetchProfile.Item.CONTENT_INFO);
folderToList.fetch(messageArray, fp);
List<Map<String, cfData>> vectorMessages = new ArrayList<Map<String, cfData>>(messageArray.length);
if ( reverseOrder ){
int msgIndex = messageArray.length-1;
for (int i = 0; i < messageArray.length; i++)
vectorMessages.add( extractMessage( messageArray[msgIndex--] ) );
}else{
for (int i = 0; i < messageArray.length; i++)
vectorMessages.add( extractMessage( messageArray[i] ) );
}
folderToList.close(false);
query.populateQuery( vectorMessages );
}
}catch(Exception E){
cfEngine.log( E.getMessage() );
imapConnection.setStatus( false, E.getMessage() );
}
return query;
}
示例6: deleteMessagesFromServer
import javax.mail.Folder; //导入方法依赖的package包/类
private void deleteMessagesFromServer( cfSession _Session ) throws cfmRunTimeException {
//--[ Get Message Store
Store popStore = openConnection( _Session );
//--[ Open up the Folder:INBOX and retrieve the headers
Folder popFolder = openFolder( _Session, popStore );
try{
Message[] listOfMessages = popFolder.getMessages();
FetchProfile fProfile = new FetchProfile();
fProfile.add( FetchProfile.Item.ENVELOPE );
if ( containsAttribute( "UID" ) ){
String[] messageUIDList = getMessageUIDList( getDynamic(_Session,"UID").getString() );
fProfile.add(UIDFolder.FetchProfileItem.UID);
popFolder.fetch( listOfMessages, fProfile );
for ( int x=0; x < listOfMessages.length; x++ ){
if ( messageUIDValid( messageUIDList, getMessageUID( popFolder, listOfMessages[x] ) ) ){
listOfMessages[x].setFlag( Flags.Flag.DELETED, true );
}
}
}else if ( containsAttribute( "MESSAGENUMBER" ) ){
int[] messageList = getMessageList( getDynamic(_Session,"MESSAGENUMBER").getString() );
popFolder.fetch( listOfMessages, fProfile );
for ( int x=0; x < listOfMessages.length; x++ ){
if ( messageIDValid(messageList, listOfMessages[x].getMessageNumber() ) ){
listOfMessages[x].setFlag( Flags.Flag.DELETED, true );
}
}
}else{
throw newRunTimeException( "Either MESSAGENUMBER or UID attribute must be specified when ACTION=DELETE" );
}
}catch(Exception ignore){}
//--[ Close off the folder
closeFolder( popFolder );
closeConnection( popStore );
}
示例7: readMessages
import javax.mail.Folder; //导入方法依赖的package包/类
private void readMessages( cfSession _Session, Folder popFolder, cfQueryResultData popData, int _start, int _max, boolean GetAll, File attachmentDir ) throws cfmRunTimeException {
try{
int maxRows = _max;
int startRow = _start;
String messageNumber = getDynamic(_Session,"MESSAGENUMBER").getString();
boolean containsUID = containsAttribute( "UID" );
boolean usingMessageNumber = messageNumber.length() > 0;
int msgCount = popFolder.getMessageCount();
// if MAXROWS is not specified, or UID or MESSAGENUMBER is, then we want to get all the messages
if ( _max == -1 || containsUID || usingMessageNumber ){
maxRows = msgCount;
}
if ( containsUID || usingMessageNumber ){
startRow = 1;
}
if ( msgCount != 0 && startRow > msgCount ){
throw newRunTimeException( "The value of STARTROW must not be greater than the total number of messages in the folder, " + popFolder.getMessageCount() + "." );
}
Message[] listOfMessages;
if ( !usingMessageNumber ){
listOfMessages = popFolder.getMessages();
}else{
listOfMessages = popFolder.getMessages( getMessageList( messageNumber ) );
}
FetchProfile fProfile = new FetchProfile();
fProfile.add( FetchProfile.Item.ENVELOPE );
fProfile.add(UIDFolder.FetchProfileItem.UID);
popFolder.fetch( listOfMessages, fProfile );
if ( containsUID ){
String[] messageUIDList = getMessageUIDList( getDynamic(_Session,"UID").getString() );
for ( int x=0; x < listOfMessages.length; x++ ){
if ( messageUIDList.length == 0 || messageUIDValid( messageUIDList, getMessageUID( popFolder, listOfMessages[x] ) ) ){
populateMessage( _Session, listOfMessages[x], popData, GetAll, attachmentDir, popFolder );
}
}
}else{
popFolder.fetch( listOfMessages, fProfile );
int end = startRow -1 + maxRows;
if ( end > listOfMessages.length ){
end = listOfMessages.length;
}
for ( int x=startRow-1; x < end; x++ ){
populateMessage( _Session, listOfMessages[x], popData, GetAll, attachmentDir, popFolder );
}
}
}catch(Exception E){
if ( E.getMessage() != null )
throw newRunTimeException( E.getMessage() );
else
throw newRunTimeException( E.toString() );
}
}