private void closeMailConnection() { try { if ( mailConn != null ) { mailConn.disconnect(); mailConn = null; } } catch ( Exception e ) { /* Ignore */ } }
/** * Returns attached files count for the current message * * @return true if message is Draft * @param pattern * (optional) */ public int getAttachedFilesCount( Pattern pattern ) throws KettleException { return getAttachedFilesCount( getMessage(), pattern ); }
public String getMessageBody() throws Exception { return getMessageBody( getMessage() ); }
/** * Returns if message is new * * @return true if new message */ public boolean isMessageNew() { return isMessageNew( getMessage() ); }
/** * Returns if message is Draft * * @return true if message is Draft */ public boolean isMessageDraft() { return isMessageDraft( getMessage() ); }
new MailConnection( log, MailConnectionMeta.getProtocolFromString( getProtocol(), MailConnectionMeta.PROTOCOL_IMAP ), realserver, realport, realusername, realpassword, isUseSSL(), isUseProxy(), realProxyUsername ); mailConn.connect(); mailConn.setDestinationFolder( realMoveToIMAPFolder, isCreateMoveToFolder() ); mailConn.setSenderTerm( realSearchSender, isNotTermSenderSearch() ); mailConn.setReceipientTerm( realSearchReceipient ); mailConn.setSubjectTerm( realSearchSubject, isNotTermSubjectSearch() ); mailConn.setBodyTerm( realSearchBody, isNotTermBodySearch() ); mailConn.setReceivedDateTermEQ( beginDate ); break; case MailConnectionMeta.CONDITION_DATE_GREATER: mailConn.setReceivedDateTermGT( beginDate ); break; case MailConnectionMeta.CONDITION_DATE_SMALLER: mailConn.setReceivedDateTermLT( beginDate ); break; case MailConnectionMeta.CONDITION_DATE_BETWEEN: mailConn.setReceivedDateTermBetween( beginDate, endDate ); break; default:
mailConn.openFolder( realIMAPFolder, true ); } else { mailConn.openFolder( true ); mailConn.retrieveMessages(); int messagesCount = mailConn.getMessagesCount(); + messagesCount, Const.NVL( mailConn.getFolderName(), MailConnectionMeta.INBOX_FOLDER ) ) ); mailConn.fetchNext(); mailConn.deleteMessage(); if ( isDebug() ) { logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.MessageDeleted", "" + i ) ); mailConn.deleteMessages( true ); if ( isDebug() ) { logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.MessagesDeleted", "" + messagesCount ) ); mailConn.fetchNext(); mailConn.moveMessage(); if ( isDebug() ) { logDebug( BaseMessages.getString( mailConn.moveMessages(); if ( isDebug() ) { logDebug( BaseMessages.getString(
break; case MailInputField.COLUMN_BODY: r[index] = data.mailConn.getMessageBody( message ); break; case MailInputField.COLUMN_RECEIVED_DATE: break; case MailInputField.COLUMN_FOLDER_NAME: r[index] = data.mailConn.getFolderName(); break; case MailInputField.COLUMN_SIZE: break; case MailInputField.COLUMN_FLAG_DRAFT: r[index] = new Boolean( data.mailConn.isMessageDraft( message ) ); break; case MailInputField.COLUMN_FLAG_FLAGGED: r[index] = new Boolean( data.mailConn.isMessageFlagged( message ) ); break; case MailInputField.COLUMN_FLAG_NEW: r[index] = new Boolean( data.mailConn.isMessageNew( message ) ); break; case MailInputField.COLUMN_FLAG_READ: r[index] = new Boolean( data.mailConn.isMessageRead( message ) ); break; case MailInputField.COLUMN_FLAG_DELETED: r[index] = new Boolean( data.mailConn.isMessageDeleted( message ) ); break; case MailInputField.COLUMN_ATTACHED_FILES_COUNT:
when( conn.getMessageBody( any( Message.class ) ) ).thenReturn( MSG_BODY ); when( conn.getFolderName() ).thenReturn( FLD_NAME ); when( conn.getAttachedFilesCount( any( Message.class ), any( Pattern.class ) ) ).thenReturn( ATTCH_COUNT ); when( conn.getMessageBodyContentType( any( Message.class ) ) ).thenReturn( CNTNT_TYPE ); data = mock( MailInputData.class ); data.mailConn = conn;
private boolean connect() { String errordescription = null; boolean retval = false; if ( mailConn != null && mailConn.isConnected() ) { retval = mailConn.isConnected(); new MailConnection( LogChannel.UI, MailConnectionMeta.getProtocolFromString( wProtocol.getText(), MailConnectionMeta.PROTOCOL_IMAP ), realserver, realport, realuser, realpass, wUseSSL.getSelection(), wUseProxy.getSelection(), realProxyUsername ); mailConn.connect(); return ( mailConn.isConnected() );
@Before public void before() throws IOException, KettleException, MessagingException { MockitoAnnotations.initMocks( this ); Mockito.when( parentJob.getLogLevel() ).thenReturn( LogLevel.BASIC ); entry.setParentJob( parentJob ); entry.setSaveMessage( true ); Mockito.when( message.getMessageNumber() ).thenReturn( 1 ); Mockito.when( message.getContent() ).thenReturn( createMessageContent() ); Mockito.when( mailConn.getMessage() ).thenReturn( message ); Mockito.doNothing().when( mailConn ).openFolder( Mockito.anyBoolean() ); Mockito.doNothing().when( mailConn ).openFolder( Mockito.anyString(), Mockito.anyBoolean() ); Mockito.when( mailConn.getMessagesCount() ).thenReturn( 1 ); }
if ( isWildcardMatch( filename, pattern ) ) { saveFile( foldername, filename, part.getInputStream() ); updateSavedAttachedFilesCounter(); if ( log.isDetailed() ) { log.logDetailed( BaseMessages.getString( PKG, "JobGetMailsFromPOP.AttachedFileSaved", filename, "" + getMessage().getMessageNumber(), foldername ) );
this.write = write; try { if ( getFolder() != null ) { closeFolder( true ); } else { this.folder = getRecursiveFolder( MailConnectionMeta.INBOX_FOLDER ); this.folder = getRecursiveFolder( foldername ); if ( log.isDebug() ) { log.logDebug( BaseMessages.getString( PKG, "MailConnection.OpeningFolderInWriteMode.Label", getFolderName() ) ); if ( log.isDebug() ) { log.logDebug( BaseMessages.getString( PKG, "MailConnection.OpeningFolderInReadMode.Label", getFolderName() ) ); log.logDetailed( BaseMessages.getString( PKG, "JobGetMailsFromPOP.FolderOpened.Label", getFolderName() ) ); log.logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.FolderOpened.Name", getFolderName() ) ); log.logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.FolderOpened.FullName", this.folder.getFullName() ) ); log.logDebug( BaseMessages.getString( PKG, "JobGetMailsFromPOP.FolderOpened.Url", this.folder.getURLName().toString() ) );
/** * Move current message to a target folder. (IMAP) You must call setDestinationFolder before calling this method * * @throws KettleException */ public void moveMessage() throws KettleException { try { // move all messages this.folder.copyMessages( new Message[] { this.message }, this.destinationIMAPFolder ); updatedMovedMessagesCounter(); // Make sure to delete messages deleteMessage(); } catch ( Exception e ) { throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.MovingMessage", "" + getMessage().getMessageNumber(), this.destinationIMAPFolder.getName() ), e ); } }
/** * Returns if message is read * * @return true if message is flagged */ public boolean isMessageFlagged() { return isMessageFlagged( getMessage() ); }
/** * Returns if message is deleted * * @return true if message is deleted */ public boolean isMessageDeleted() { return isMessageDeleted( getMessage() ); }
/** * Returns if message is read * * @return true if message is read */ public boolean isMessageRead() { return isMessageRead( getMessage() ); }
new MailConnection( log, MailConnectionMeta.getProtocolFromString( meta.getProtocol(), MailConnectionMeta.PROTOCOL_IMAP ), realserver, realport, realusername, realpassword, meta.isUseSSL(), meta.isUseProxy(), realProxyUsername ); data.mailConn.connect();
/** * Delete current fetched message * * @throws KettleException */ public void deleteMessage() throws KettleException { try { this.message.setFlag( Flags.Flag.DELETED, true ); updateDeletedMessagesCounter(); } catch ( Exception e ) { throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.DeletingMessage", "" + getMessage().getMessageNumber() ), e ); } }
/** * Export message content to a filename. * * @param filename * the target filename * @param foldername * the parent folder of filename * @throws KettleException */ public void saveMessageContentToFile( String filename, String foldername ) throws KettleException { OutputStream os = null; try { os = KettleVFS.getOutputStream( foldername + ( foldername.endsWith( "/" ) ? "" : "/" ) + filename, false ); getMessage().writeTo( os ); updateSavedMessagesCounter(); } catch ( Exception e ) { throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.SavingMessageContent", "" + this.message.getMessageNumber(), filename, foldername ), e ); } finally { if ( os != null ) { IOUtils.closeQuietly( os ); } } }