360 lines
7.5 KiB
C
360 lines
7.5 KiB
C
/*
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is the Netscape Messaging Access SDK Version 3.5 code,
|
|
* released on or about June 15, 1998. *
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 1997 and 1998 Netscape Communications Corporation
|
|
* (http://home.netscape.com/misc/trademarks.html)
|
|
*/
|
|
|
|
/*
|
|
*@author derekt@netscape.com
|
|
*@version 1.0
|
|
*/
|
|
|
|
/* USAGE: pop3test.exe server user password */
|
|
|
|
#include "pop3.h"
|
|
#include "testsink.h"
|
|
|
|
/*Function prototype for settting sink pointers*/
|
|
void setSink( pop3Sink_t * pSink );
|
|
|
|
int main( int argc, char *argv[ ] )
|
|
{
|
|
int l_nReturn;
|
|
pop3Client_t * pClient = NULL;
|
|
pop3Sink_t * pSink = NULL;
|
|
|
|
/*Initialize the response sink.*/
|
|
l_nReturn = pop3Sink_initialize( &pSink );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Set the function pointers on the response sink.*/
|
|
setSink( pSink );
|
|
|
|
/*Initialize the client passing in the response sink.*/
|
|
l_nReturn = pop3_initialize( &pClient, pSink );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Connect to the POP3 server.*/
|
|
l_nReturn = pop3_connect( pClient, argv[1], 110 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Specify a user name.*/
|
|
l_nReturn = pop3_user( pClient, argv[2] );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Specify a password.*/
|
|
l_nReturn = pop3_pass( pClient, argv[3] );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Delete a message on the server.*/
|
|
l_nReturn = pop3_delete( pClient, 1 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Undelete any messages marked for deletion.*/
|
|
l_nReturn = pop3_reset( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*List all messages.*/
|
|
l_nReturn = pop3_list( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*List a specified message.*/
|
|
l_nReturn = pop3_listA( pClient, 1 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Noop operation.*/
|
|
l_nReturn = pop3_noop( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Perform the stat command.*/
|
|
l_nReturn = pop3_stat( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*List all messages and their UIDs.*/
|
|
l_nReturn = pop3_uidList( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*List a message and its UID.*/
|
|
l_nReturn = pop3_uidListA( pClient, 1 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*List all messages and authenticated users.*/
|
|
l_nReturn = pop3_xAuthList( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*List a message and its authenticated user.*/
|
|
l_nReturn = pop3_xAuthListA( pClient, 1 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Give the e-mail address.*/
|
|
l_nReturn = pop3_xSender( pClient, 1 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Perform the top command for header info and a specified number of lines.*/
|
|
l_nReturn = pop3_top( pClient, 1, 10 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Retrieve a message.*/
|
|
l_nReturn = pop3_retrieve( pClient, 2 );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Quit.*/
|
|
l_nReturn = pop3_quit( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
l_nReturn = pop3_processResponses( pClient );
|
|
|
|
if ( l_nReturn != NSMAIL_OK )
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/*Free the client structure.*/
|
|
pop3_free( &pClient );
|
|
/*Free the sink structure.*/
|
|
pop3Sink_free( &pSink );
|
|
|
|
return 0;
|
|
}
|
|
|
|
/*Function to set the sink pointers.*/
|
|
void setSink( pop3Sink_t * pSink )
|
|
{
|
|
pSink->connect = POP3Test_connect;
|
|
pSink->dele = POP3Test_delete;
|
|
pSink->error = POP3Test_error;
|
|
pSink->listStart = POP3Test_listStart;
|
|
pSink->list = POP3Test_list;
|
|
pSink->listComplete = POP3Test_listComplete;
|
|
pSink->noop = POP3Test_noop;
|
|
pSink->pass = POP3Test_pass;
|
|
pSink->quit = POP3Test_quit;
|
|
pSink->reset = POP3Test_reset;
|
|
pSink->retrieveStart = POP3Test_retrieveStart;
|
|
pSink->retrieve = POP3Test_retrieve;
|
|
pSink->retrieveComplete = POP3Test_retrieveComplete;
|
|
pSink->sendCommandStart = POP3Test_sendCommandStart;
|
|
pSink->sendCommand = POP3Test_sendCommand;
|
|
pSink->sendCommandComplete = POP3Test_sendCommandComplete;
|
|
pSink->stat = POP3Test_stat;
|
|
pSink->topStart = POP3Test_topStart;
|
|
pSink->top = POP3Test_top;
|
|
pSink->topComplete = POP3Test_topComplete;
|
|
pSink->uidListStart = POP3Test_uidListStart;
|
|
pSink->uidList = POP3Test_uidList;
|
|
pSink->uidListComplete = POP3Test_uidListComplete;
|
|
pSink->user = POP3Test_user;
|
|
pSink->xAuthListStart = POP3Test_xAuthListStart;
|
|
pSink->xAuthList = POP3Test_xAuthList;
|
|
pSink->xAuthListComplete = POP3Test_xAuthListComplete;
|
|
pSink->xSender = POP3Test_xSender;
|
|
}
|