Пример #1
0
NS_IMETHODIMP nsRssIncomingServer::PerformBiff(nsIMsgWindow *aMsgWindow)
{
  // Get the account root (server) folder and pass it on.
  nsCOMPtr<nsIMsgFolder> rootRSSFolder;
  GetRootMsgFolder(getter_AddRefs(rootRSSFolder));
  nsCOMPtr<nsIUrlListener> urlListener = do_QueryInterface(rootRSSFolder);
  GetNewMail(aMsgWindow, urlListener, rootRSSFolder, nsnull);
  return NS_OK;
}
Пример #2
0
int main( int argc, char *argv[] ) {
	cout << "*** ImapLibrary Test ***" << endl;
	cout << "Connect to imap.gmail.com at port 993..." << endl;
	imap_server 	= "imap.gmail.com";					// Nombre servidor IMAP
	port_n			= 993;								// 143 || 993 con encriptación SSL
	cout << "Write your username: "******"Write your pass: "******"********** IMAPLogin **********" << endl;			// DEBUG
	i = IMAPLogin(connection, imap_server, port_n, user, pass, usessl);
	if (i == BAD_LOGIN) {
		printf("Bad login: %d\n", i);
		return -1;
	}
	if (i == SERVER_NOT_READY_FOR_CONNECTION) {
		printf("Server not ready for connection: %d\n", i);
		return -1;
	}
	
	/**
	 * Get folder list from server
	 * - we need to get a list of folder names
	 */
	cout << endl << "********** getIMAPFolders **********" << endl;		// DEBUG
    list<string> folder_names;
    folder_root = ""; // Nombre del buzón de correo que queremos que liste
    int return_code;
    
    return_code = getIMAPFolders(connection, folder_names, folder_root );
    
	cout << endl << "-------------------------------------" << endl;	// DEBUG
	cout << "-----------List of Folders-----------" << endl;			// DEBUG
	cout << "-------------------------------------" << endl;			// DEBUG
	cout << folder_root << "/"<< endl;									// DEBUG
    if( return_code == SUCCESS ) { //  Successful 
        create_folder_list(folder_names);
    }
    
    // DEBUG - Show folder_list
    list<Folder>::iterator itera = folder_list.begin();
    while(itera != folder_list.end()) {
		//cout << "folder: " << (*itera).get_Folder_Name() << endl;
		//cout << "     -> full_name= " << (*itera).get_Full_Folder_Name() << endl;
		//cout << " -> seq_start= " << (*itera).get_Sequence_Start() << endl;
		//cout << " -> seq_stop = " << (*itera).get_Sequence_Stop() << endl;
		//cout << " -> num_mess = " << (*itera).get_Num_Messages() << endl;
		if (strcmp("INBOX", (char*) (*itera).get_Folder_Name().c_str()) == 0)
			break;
		itera++;
	}

	/**
	 * Select a folder
	 * - In order to get the emails of a folder, we must select it before.
	 */
	string folderOpenStatus;
	int numMessages;
	//itera = folder_list.begin();
	cout << endl << "********** SelectFolders **********" << endl;		// DEBUG
	cout << "Folder name: " << (*itera).get_Folder_Name() << endl;		// DEBUG
	cout << "Full folder name: " << (*itera).get_Full_Folder_Name() << endl;// DEBUG
	i = SelectFolder(connection, (*itera).get_Folder_Name(), numMessages, folderOpenStatus);
	if (i == UNKNOWN_MAILBOX)
		printf("Unknown mailbox - %d\n",i);
	cout << "numMessages = " << numMessages << " |folderOpenStatus = " << folderOpenStatus << endl;// DEBUG

	/**
	 * Get new emails
	 * - We must select a folder before or the function return us a failure
	 */
	printf("\n\n********************************************\n");
	cout << "Folder name: " << (*itera).get_Folder_Name() << endl;
	cout << "Full folder name: " << (*itera).get_Folder_Name() << endl;
	i = GetNewMail(connection, (*itera));
	if (i>BEG_FAIL || i==LIST_FAILED || i== FOLDER_NOT_EXIST) {
		printf("GetNewMail Error - %d\n",i);	
		return -1;
	}
	
	int Message_id = 2;		// Message identifier
	Message *email = (*itera).get_Message(Message_id);		// Para obtener cuerpo de un email a partir de su uid,
															// primero necesitamos coger uno de la lista (orden por id)
	if (email != NULL) {
		cout << "From: " << email->get_From_Address() << endl;			// DEBUG
		//cout << "Have body? " << email->have_Body_Text() << endl;		// DEBUG
		//cout << "Date: " << email->get_Date() << endl;					// DEBUG
		cout << "Subject: " << email->get_Subject() << endl;			// DEBUG
		//cout << "UID: " << email->get_UID() << endl;					// DEBUG
		//cout << "-------------------------------" << endl;				// DEBUG
		i=email->get_Body_From_Server(connection);
		//cout << "getbodyfromserver=" << i << endl;						// DEBUG
		//cout << "Have body? " << email->have_Body_Text() << endl;		// DEBUG
		if (email->have_Body_Text() == 1)
			cout << "BODY: " << email->get_Body_Text();					// DEBUG
	} else
		cout << "The message does not exist." << endl;

	/**
	 * Logout
	 * - Finalize the session
	 */
	i = IMAPLogout(connection);
	if (i != SUCCESS) {
		cout << "An error ocurred" << endl;
		return -1;
	}
    
	return 0;
}