Export POPMSG raw content to an email file.
[Syntax] C++: HRESULT ExportFile( BSTR FileName, long* pVal ) Visual Basic: ExportFile( FileName As String ) As long C#: long ExportFile( string FileName )
Parameters
FileName
Name of the file to be saved.
Return Value
If this method succeeds, the return value is zero. If it fails, the return value is non-zero.
Remarks
This method rebuilds the file even if the file already exists.
Usage Example
[Visual Baisc]
Sub Retrieve( pop3Server As String, pop3User As String, pop3Password As String )
Dim oPop3 As ANPOPLib.POPMAIN
Dim oMsg As ANPOPLib.POPMSG
Dim i, nRet, nCount As Integer
Dim emailContent, err As String
Set oPop3 = new ANPOPLib.POPMAIN 'Create object instance
Set oMsg = new ANPOPLib.POPMSG
err = ""
nRet = oPop3.Connect( pop3Server, pop3User, pop3Password ) 'Connect pop3 server
If nRet <> 0 Then
err = "error with connecting server"
goto ErrorHandler
End If
nCount = oPop3.GetTotalOfMails() 'Get total count of emails
If nCount = -1 Then
err = "error with GetTotalOfMails"
goto ErrorHandler
ElseIf nCount = 0 Then
err = "no email"
goto ErrorHandler
End If
For i = 1 To nCount
emailContent = oPop3.Retrieve(i) 'Retrieve email
If emailContent = vbnullstring Then
err = "error with Retrieve"
goto ErrorHandler
End If
oMsg.RawContent = emailContent 'Pass email content to POPMSG
nRet = oMsg.ExportFile( "c:\pop3Test_" & i & ".eml") 'Save email
If nRet <> 0 Then
err = "error with ExportFile"
goto ErrorHandler
End If
Next
ErrorHandler:
Call oPop3.Close() 'Close connection
Set oPop3 = Nothing
Set oMsg = Nothing
End Sub
[C#]
public void Retrieve( string pop3Server, string pop3User, string pop3Password )
{
POPMAINClass oPop3 = new POPMAINClass(); //Create object instance
POPMSGClass oMsg = new POPMSGClass();
int i = 0, nRet = 0, nCount = 0;
string emailContent = "";
try
{
nRet = oPop3.Connect( pop3Server,
pop3User,
pop3Password ); //Connect pop3 server
if( nRet != 0 )
throw new Exception( "error with Connect" );
nCount = oPop3.GetTotalOfMails(); //Get total count of emails
if( nCount == -1 )
throw new Exception( "error with GetTotalOfMails" );
else if( nCount == 0 )
throw new Exception( "no email" );
for( i = 1; i <= nCount; i++ )
{
emailContent = oPop3.Retrieve(i); //Retrieve email
if( emailContent == null )
throw new Exception( "error with Retrieve" );
oMsg.RawContent = emailContent; //Pass email content to POPMSG
nRet = oMsg.ExportFile(
String.Format( "c:\\pop3Test_{0}.eml", i )); //Save email
if( nRet != 0 )
throw new Exception( "error with ExportFile" );
}
}
catch( Exception e )
{
Console.WriteLine( e.Message );
}
oPop3.Close(); //Close connection
oPop3 = null;
oMsg = null;
}
[Visual C++]
#include <comdef.h>
#include <string>
#include <iostream>
using namespace std;
#import "c:\program files\adminsystem.net\anpop\anpop.dll" no_namespace
VOID Retrieve( const char* lpszServer,
const char* lpszUser,
const char* lpszPassword )
{
::CoInitialize( NULL );
IPOPMAINPtr oPop3("ANPOP.POPMAIN");
IPOPMSGPtr oMsg("ANPOP.POPMSG");
int i = 0, nCount = 0, nRet = 0;
_bstr_t emailContent = "";
try
{
nRet = oPop3->Connect( _bstr_t(lpszServer),
_bstr_t(lpszUser),
_bstr_t(lpszPassword));
if( nRet != 0 )
throw string( "error with Connect" );
nCount = oPop3->GetTotalOfMails(); //Get total count of emails
if( nCount == -1 )
throw string( "error with GetTotalOfMails" );
else if( nCount == 0 )
throw string( "no email" );
for( i = 1; i <= nCount; i++ )
{
emailContent = oPop3->Retrieve(i); //Retrieve email
if( emailContent == _bstr_t((BSTR)NULL))
throw string( "error with Retrieve" );
oMsg->RawContent = emailContent; //Pass email content to POPMSG
char szFile[MAX_PATH];
memset( szFile, 0, sizeof(szFile));
::sprintf( szFile, "c:\\pop3Test_%d.eml", i );
nRet = oMsg->ExportFile( _bstr_t(szFile)); //Save email
if( nRet != 0 )
throw string( "error with ExportFile" );
}
}
catch( string &e )
{
cout << e << endl;
}
oPop3->Close(); //Close connection
oPop3.Release();
oMsg.Release();
::CoUninitialize();
}
See Also
2001-2007 © Copyright AdminSystem Software Limited. All rights reserved.