MarshallSoft

SMTP/POP3 Email Engine

Library for Delphi

Programmer's Manual


(SEE4D)


Version 4.0

August 17, 2006



This software is provided as-is.
There are no warranties, expressed or implied.



Copyright (C) 2006
All rights reserved



MarshallSoft Computing, Inc.
Post Office Box 4543
Huntsville AL 35815


Voice : 1.256.881.4630

FAX : 1.256.880.0925

email : info@marshallsoft.com

Web : www.marshallsoft.com


MARSHALLSOFT is a registered trademark of MarshallSoft Computing.



TABLE OF CONTENTS


1 Introduction
1.1 Features
1.2 Documentation Set
1.3 Example Program
1.4 Installation
1.5 Uninstalling
1.6 Pricing
1.7 Updates
2 Library Overview
2.1 Dynamic Link Libraries
2.2 Keycode
2.3 Win32 STDCALL and DECLSPEC
2.4 Error Display
2.5 Adding SEE4D to your Project
3 Compiler Issues
3.1 Delphi Versions
3.2 SEE4D Wrapper
3.3 Compiling Programs
4 Example Programs
4.1 Connectionless Example Programs
4.2 SMTP Example Programs
4.3 POP3 Example Programs
5 Revision History

1 Introduction

The SMTP/POP3 Email Engine for Delphi (SEE4D) library is a powerful toolkit that allows software developers to quickly develop SMTP and POP3 email applications in Borland Delphi. SEE4D is a component library of functions providing direct and simple control of the SMTP (Simple Mail Transport Protocol) and POP3 (Post Office 3) protocols.

A simple interface allows sending and receiving email, including multiple MIME base64 and quoted-printable encoded attachments. Knowledge of Winsock and TCP/IP is not needed.

The SMTP/POP3 Email Engine for Delphi component library supports and has been tested with all versions Borland Delphi include Delphi for .NET. SEE4D includes numerous example programs that demonstrate SMTP and POP3 functions to help software developers easily build software applications using the SEE4D library.

Both Win16 and Win32 DLLs (Dynamic Link Libraries) are provided. SEE4D runs under all versions of Windows (Windows 95, Windows 98, Windows ME, Windows 2000, Windows 2003, Windows NT and Windows XP). The SMTP/POP3 Email Engine SDK DLLs (SEE16.DLL and SEE32.DLL) can also be used from any language (C/C++, .NET, Visual Basic, VB .NET, Visual FoxPro, COBOL, Xbase++, dBase, PowerBASIC, etc.) capable of calling the Windows API.

When comparing the SMTP/POP3 Email component library against our competition, note that:

MarshallSoft also has versions of the SMTP/POP3 Email Engine library for C/C++ (SEE4C), Visual Basic (SEE4VB), PowerBASIC (SEE4PB), Visual FoxPro (SEE4FP), Visual dBASE (SEE4DB), Xbase++ (SEE4XB) and COBOL (SEE4CB). All versions of the SEE library use the same DLLs (SEE16.DLL or SEE32.DLL). However, the examples provided for each version are written for the specified computer language.

The latest versions of SMTP/POP3 Email Engine (SEE) can be downloaded from our web site at

    http://www.marshallsoft.com/email-component-library.htm

Our goal is to provide a robust SMTP/POP3 email component library that you and your customers can depend upon. A fully functional evaluation version is available. Contact us if you have any questions.


1.1 Features

Some of the many features of SMTP/POP3 Email Engine component library are as follows:

1.2 Documentation Set

The complete set of documentation consists of three manuals in three formats. This is the first manual (SEE_4D) in the set.

Each manual comes in three formats:

The SEE_4D Programmer's Manual is the language specific (Delphi) manual. All language dependent programming issues such as compiling, compilers and example programs are discussed in this manual. Read this manual first.

The SEE User's Manual (SEE_USR) discusses email processing as well as language independent programming issues. Purchasing and licensing details are also provided.

The SEE Reference Manual (SEE_REF) contains details on each individual SEE function. A list of error codes is also provided.

Use Microsoft Word or Microsoft WordPad to print the document files. The online documentation can be accessed on the SMTP/POP3 Email Engine for Delphi product page at:

    http://www.marshallsoft.com/delphi-email-component.htm


1.3 Example Program

The following example demonstrates the use of some of the SMTP/POP3 Email for Delphi component library functions. It uses the SEEW.PAS unit which is discussed in Section 3.2.

     var
       Code : Integer;
       SmtpHost : String;
       SmtpFrom : String;
       Text : String;
       Empty : String;
       SmtpTo  : String;
     begin
       Empty := Chr(0);
       SmtpHost  := 'mail.your-isp.com';
       SmtpFrom  := '<you@your-isp.com'>';
       SmtpTo    := '<someone@their-isp.com>';
       {create email message}
       Text := 'This is a test message ' + Chr(13) + Chr(10)
             + '-- marshallsoft' + Chr(13) + Chr(10);
       {attach SEE}
       Code := fAttach(1, 0);
       if Code < 0 then
         begin
           Text := Format('Cannot attach SEE (error %d)',[Code]);
           DisplayLine(send.eResult, Text);
           exit
         end;
       {connect to SMTP server}
       Code := fSmtpConnect(0,  SmtpHost, SmtpFrom, Empty);
       if Code < 0 then
         begin
           DisplayError(send.eResult, Code);
           fRelease;
           exit
         end;
       {send email}
       Code := fSendEmail(0, SmtpTo, Empty, Empty, 'Your order', Text, Empty);
       if Code < 0 then
         begin
           DisplayError(send.eResult, Code);
           exit
         end;
       {close}
       fClose(0);
       fRelease
     end;

In the example program above, fAttach is called to initialize SEE and then fSmtpConnect is called to connect to the SMTP mail host. The SMTP server host name and your email address are required, while the "Reply-To" entry is optional.

fSendEmail is then called, passing the addressee lists. The primary addressee is provided in the "To List". The CC ("Carbon Copy") lists additional recipients, as does the BCC (Blind Carbon Copy) list. The subject contains the email subject line. The message text is next. If it starts with the '@' symbol, it is considered the name of the file containing the email message. Lastly, the filename of any ASCII or binary attachment is specified. All fields, except the first field, in seeSendEmail are optional

After returning from seeSendEmail, the seeClose function is called to close the connection to the SMTP server. Lastly, fRelease is called to perform SEE termination processing and release the Winsock.

1.4 Installation

  1. Before installation of SEE4D, your Delphi compiler (any version) should already be installed on your system and tested.

  2. Unzip SEE4D40.ZIP (or SEExxxx.ZIP where xxxx is your Customer ID) using any Windows unzip program.
  3. Run the installation program, SETUP.EXE, which will install all SEE4D files, including copying SEE16.DLL and SEE32.DLL to the Windows directory. No Windows system files are modified.

  4. For a quick start, load project file VER_PRJ.DPR

Note that the Windows registry is not modified by the install process.

1.5 Uninstalling

Uninstalling SEE4D is very easy. SEE does not modify the registry.

First, run UINSTALL.BAT, which will delete SEE16.DLL and SEE32.DLL from your Windows directory, typically C:\WINDOWS for Windows 95/98/ME/XP or C:\WINNT for Windows NT/2000.

Second, delete the SEE project directory created when installing SEE4D.

1.6 Pricing

A developer license for SEE4D can be purchased for $115. Purchasing details can be found in Section 1.5 "How to Purchase" in the SEE User's Manual (SEE_USR.HTM). Also see INVOICE.TXT provided with the evaluation version or order directly on our web site at

    http://www.marshallsoft.com/order.htm

Registration includes one year of free updates.

1.7 Updates

When a developer license is purchased, you will be sent a set of registered DLLs plus a license file (SEExxxx.LIC, where xxxx is your Customer ID). The license file can be used to update the registered DLL's for a period of one year from purchase. Updates can be downloaded from


     http://www.marshallsoft.com/oem.htm


After one year, your license must be updated if you want to be able to download updates. Your license can be updated for $30 if ordered within one year of the original purchase (or previous update). After one year, licenses can be updated for $55.

Note that the registered DLL's do not expire

Also see file UPDATES.TXT.


2 Library Overview

2.1 Dynamic Link Libraries

The SMTP/POP3 Email component library includes both Win16 and a Win32 dynamic link library (DLL). A DLL is characterized by the fact that it need not be loaded until required by an application program and that only one copy of the DLL is necessary regardless of the number of application programs that use it. Contrast this to the traditional static library that is bound to each and every application that uses it at link time.

An important advantage that DLL's have over other "popular" library formats such as VBX or OCX is that DLL's are callable by all Windows applications. Since DLL's are the building blocks of the Windows Operating System, they will not be replaced by a "newer technology".

2.2 Keycode

SEE16.DLL and SEE32.DLL each have a keycode encoded within them. Your keycode is a 9 or 10 digit decimal number (unless it is 0), and will be found in the file KEYCODE.PAS. The keycode for the evaluation (shareware) version is 0. You will receive a new keycode and a set of new DLL's when registering. The KEYCODE is passed to SeeAttach.

If you get an error message (value -74) when calling SeeAttach, it means that the keycode in your application does not match the keycode in the DLL. After registering, it is best to remove the evaluation version of the SEE32.DLL and SEE16.DLL from the Windows search path or delete them.

2.3 Win32 STDCALL and DECLSPEC

SEE32 is written in ANSI C and is compiled using the _stdcall and _declspec keywords. This means that SEE4D uses the same calling conventions and file naming conventions as the Win32 API. In particular, function names are NOT decorated. There are neither leading underscores nor trailing "@size" strings added to function names.

The SEE32.DLL functions may be called by any Windows application program capable of calling the Windows API provided the proper declaration file is used.

2.4 Error Display

The error message text associated with SEE error codes can be displayed by calling SeeErrorText. Each sample program contains examples of error processing.

Also see the file seeErrors.txt for a list of all Winsock and SEE error codes.

2.5 Adding SEE4D To Your Project

If you are running Delphi 2005/2006, copy SEE32UC.PAS to the same directory as your application program. If you are running Delphi 2,3,4,5,6,7,or 8 (32-bit Delphi), copy SEE32.PAS. If you are running Delphi 1 (16-bit), copy SEE16.PAS for Windows 95/98/Me or SEE16NT.PAS for Windows NT/2000/XP. Also copy the file KEYCODE.PAS to this same directory. You will find these files in the APPS directory (folder) created when you ran SETUP, usually C:\SEE4D\APPS.

Next, add a reference to the files copied above to your  "uses" clause in your application program.  For example,
   
     uses
       see32, keycode, ...

You can leave 'keycode' out above if you put your numerical keycode value (found in KEYCODE.PAS) directly into the call to SioAttach.  For example,
   
       {pass the key code}
       Code := SioAttach(123456789) < 0 then

Lastly, add a reference to see32 (or see16) to your project file (*.DPR).  For example,

      uses
       SEE32 in 'SEE32.PAS', ...
   

3 Compiler Issues

The SMTP/POP3 Email Engine for Delphi component library supports all versions of Borland Delphi including Delphi 2005 and Delphi for .NET.

3.1 Delphi Versions

Applications written with Delphi link with the same identical DLL's as for applications written in all other supported languages, such as C/C++ and Visual Basic.

3.1.1 Delphi 1

The first release of Borland Delphi (version 1) generated Win16 code. Therefore, applications written using Delphi 1 must link with SEE16.DLL.

One very significant limitation of Delphi 1 is that strings are limited to 255 bytes. This limitation makes using the SEE wrapper unit (Section 2.3) SEEW.PAS difficult. For this reason, it is suggested that SEE functions be called directly rather than through SEEW.

Delphi 1 generates Win16 code. In order to use Delphi 1, all references to the SEE unit in the example program (.PAS) and project files (.DPR) must be changed from SEE32 to SEE16 before compiling.

3.1.2 Delphi 2

Delphi version 2 and above generates Win32 code. Therefore, applications written using Delphi 2 will link with SEE32.DLL. Strings can be much larger than 255 bytes.

Delphi 2 seems to have a problem with some of the string functions. Although the default is "large strings", some of the string functions (such as StrPas) copy only 255 bytes. The MYSTRING.PAS unit contains a replacement unit to use instead of StrPCopy.

3.1.3 Delphi 3

Delphi 3 also has some problems with PChar string functions such as StrPCopy. See the above section.

3.1.4 Delphi 4, 5, and 6.

There are no known Delphi problems impacting our example programs in Delphi version 4 and above. Applications written using Delphi 4 through Delphi 6 will access SEE32.DLL.


3.1.5 Delphi 7 and 8.

Beginning in Delphi 7, the filename of a unit must match the unit name. Applications written using Delphi 7 will access SEE32.DLL.

3.1.6 Delphi 2005 and Delphi 2006

Delphi 2005/2006 is Borland's latest Delphi product with support for both Win32 and Microsoft .NET Framework. Application programs written using Delphi 2005/2006 will access SEE32.DLL.

When loading Win32 Delphi projects with Delphi 2005/2006, a window entitled "Project Upgrade" will be displayed:

This project must be upgraded before it can be opened. Please select which project type you wish to target:

   
        ( ) Delphi for .NET
        ( ) Delphi for Win32
   

Choose "Delphi for Win32" for all projects except "*.bdsproj" projects, which are Delphi for .NET projects.

3.2 SEE4D Wrapper

The SEEW.PAS module is a "wrapper" for SEE.PAS that allows you to pass Delphi strings directly rather than having to first convert them to PCHAR variables. Strings in SEE, like Windows itself, are in reality buffers terminated by a null (0) character. Implementing SEE in this way allows SEE functions to be called by any language capable of calling the Windows API. Note that wrapper functions (defined in SEEW.PAS) are named beginning with the letter 'f'. For instance, "fAttach" is the wrapper function that calls "seeAttach".

Nevertheless, it is certainly more convenient to pass Delphi strings rather than zero terminated buffers. Compare the two following code segments:

     {call using SEE -- pass pointers to null terminated buffers}
     var
       Code    : Integer;
       HostPtr : PChar;
       UserPtr : PChar;
       PassPtr : PChar;
     Begin
       GetMem(HostPtr, 64); StrPCopy(HostPtr, 'mail.marshallsoft.com');
       GetMem(UserPtr, 64); StrPCopy(UserPtr, 'mike');
       GetMem(PassPtr, 64); StrPCopy(PassPtr, 'qwerty');
       Code := seePop3Connect(0, HostPtr, UserPtr, PassPtr);
       FreeMem(HostPtr,64); FreeMem(UserPtr,64); FreeMem(PassPtr,64);
       . . .
       {call using SEEW -- pass Delphi strings}
       . . .
       Code := fPop3Connect(0, 'mail.marshallsoft.com', 'mike', 'qwerty');
       . . .

3.3 Compiling Programs

The example programs are compiled from the Delphi development environment using the provided Delphi project files (.DPR). In order to use Delphi 1 (which compiles Win16 applications), all references in the example project files (.DPR) must be changed from SEE32.DLL to SEE16.DLL before compiling.

Refer to Section 4.0 "Example Programs" for more details on each of the example programs.


4 Example Programs

SMTP programs send email, while POP3 programs check and download mail.

Each of the following example programs uses the "display" unit and the "SEE" unit:

     DISPLAY.PAS   : Display unit source code.
     SEE.PAS       : SEE Unit source code.

In order to use Delphi 1, all references in the example project files (*.DPR) must be changed from SEE32.DLL to SEE16.DLL before compiling.

A few of the example programs also use the "SEE Wrapper" unit, SEEW.PAS, as described in Section 3.2.

  SEEW.PAS      : SEE Wrapper unit source code.

The DISPLAY.PAS unit is used to display text in Delphi memos. DISPLAY.PAS contains 4 procedures:

     DisplayChar   : Displays character.
     DisplayString : Displays string.
     DisplayLine   : Displays line.
     DisplayError  : Displays error message.

Delphi NET projects must be compiled with Delphi NET 2005/2006. See section 3.1.6 "Delphi 2005 and Delphi 2006" above.


4.1 Connectionless Example Programs

Several example programs do not require a connection to a server.

4.1.1 VERSION

This simple program displays the SEE version number, build number, and registration string taken from SEE32.DLL (or SEE16.DLL). Its purpose is display the SEE version, build, and registration string as well as to verify that SEE32.DLL (or SEE16.DLL for Delphi 1) is being found and loaded by Windows The VERSION program does not attempt to connect to any server.

The VERSION project files are:

     VER_PRJ.DPR  : Delphi project file.
     VER_PGM.DFM  : Delphi form file.
     VER_PGM.PAS  : Program source code.

4.1.2 CODETEST

The CODETEST example program demonstrates how to use seeEncodeBuffer and seeDecodeBuffer, which BASE64 encodes and decodes several test strings. The CODETEST example program also demonstrates the use of seeEncodeUTF8 and seeDecodeUTF8.

The CODETEST project files are:

     CODE_PRJ.DPR  : Delphi project file.
     CODE_PGM.DFM  : Delphi form file.
     CODE_PGM.PAS  : Program source code.

4.1.3 VERSION_PROJECT

This is the Delphi 2005/2006 NET equivalent of the Delphi Win32 VERSION project.

The Delphi 2005/2006 NET project files are:

     Version_Project.bdsproj        : Delphi NET project file
     Version_Project.dpr            : Delphi NET project file
     Version_WinForm.pas            : Delphi NET form source
     Version_WinForm.resx           : Delphi NET resource file
     Version_WinForm.TWinForm.resources  : Delphi NET resource file

4.2 SMTP Example Programs

There are eleven SMTP email example programs. SMTP programs send email using an SMTP server.

4.2.1 AUTO

AUTO ("auto-responder") uses two channels to read email on the POP3 server and at the same time automatically responds to all new email using the SMTP server. Edit the TCP/IP parameters in AUTO_PGM.PAS (line 82) before compiling. AUTO uses the SEEW.PAS wrapper unit.

The AUTO project files are:

     AUTO_PRJ.DPR  : Delphi project file.
     AUTO_PGM.DFM  : Delphi form file.
     AUTO_PGM.PAS  : Program source code.

4.2.2 AUTHENTICATE

AUTHENTICATE is an example program that connects to an SMTP (ESMTP) server using SMTP Authentication. You must connect to a SMTP server which allows authentication.

The AUTH project files are:

     AUTH_PRJ.DPR  : Delphi project file.
     AUTH_PGM.DFM  : Delphi form file.
     AUTH_PGM.PAS  : Program source code.

4.2.3 BROADCAST

The BROADCAST example program emails the same message to each recipient from a file of email addresses. Along with your SMTP server and your email address, you must create the file containing the email message to send, and create another file containing the list of recipients. See BCAST.EML for an example.

The BCAST project files are:

     BCST_PRJ.DPR  : Delphi project file.
     BCST_PGM.DFM  : Delphi form file.
     BCST_PGM.PAS  : Program source code.

4.2.4 HELLO

The HELLO program emails a short message. Before compiling, HELO_PGM.PAS must be edited (about line 43) with your email parameters. HELLO uses the SEE wrapper unit (SEEW.PAS).

The HELLO project files are:

     HELO_PRJ.DPR  : Delphi project file.
     HELO_PGM.DFM  : Delphi form file.
     HELO_PGM.PAS  : Program source code.

Compare HELLO with the MAILER example program.


4.2.5 HTML

The HTML example program connects to an SMTP server and emails an HTML encoded file (HTML.HTM)containing inline embedded graphics (IMAGE1.GIF and IMAGE2.GIF) as well as an alternate text file (HTML.TXT).

Note that the defaults are read from the file HTML.INI at runtime.

The HTML project files are:

     HTML_PRJ.DPR  : Delphi project file.
     HTML_PGM.DFM  : Delphi form file.
     HTML_PGM.PAS  : Program source code.

4.2.6 MAILER

The MAILER example program emails a message, including optional MIME attachments.

The MAILER project files are:

     MAIL_PRJ.DPR  : Delphi project file.
     MAIL_PGM.DFM  : Delphi form file.
     MAIL_PGM.PAS  : Program source code.

Note that the MAILER program uses the "indirect" method (refer to SMTP/POP3 User's Manual SEE_USR). The function seeDriver is called automatically. An hour glass cursor is displayed while your email is being sent to the server.

4.2.7 ISO 8859

The ISO 8859 example program sends a text message and subject line that are ISO-8859 encoded. The recipient's email client will be able to display the email message using the specified ISO character set provided that it is capable of identifying ISO-8859 MIME parts (such as MS OutLook).

The ISO 8859 project files are:

     ISO_PRJ.DPR  : Delphi project file.
     ISO_PGM.DFM  : Delphi form file.
     ISO_PGM.PAS  : Program source code.


4.2.8 GB 2312

The GB 2312 example program sends a text message that is GB2312 (simplified Chinese) encoded. The recipient's email client will be able to display the email message using the specified GB2312 character set provided that it is capable of identifying GB2312 MIME parts (such as MS OutLook).

The GB 2312 project files are:

     GB_PRJ.DPR  : Delphi project file.
     GB_PGM.DFM  : Delphi form file.
     GB_PGM.PAS  : Program source code.

4.2.9 PART

The PART example program sends a multipart MIME email in which the Content-Type headers for each attachment are specified by the programmer.

The two attachment types specified in this example are a sound file (.wav) and of PDF file (.pdf).

The PART project files are:

     PART_PRJ.DPR  : Delphi project file.
     PART_PGM.DFM  : Delphi form file.
     PART_PGM.PAS  : Program source code.

4.2.10 FORWARD

The FORWARD example program forwards an email message to a new recipient. Only undecoded email messages can be forwarded.

Undecoded email message can be downloaded using the GETRAW and READER example programs.

The FORWARD project files are:

     FWD_PRJ.DPR  : Delphi project file.
     FWD_PGM.DFM  : Delphi form file.
     FWD_PGM.PAS  : Program source code.

4.2.11 MAILER_PROJECT

This is the Delphi 2005/2006 NET equivalent of the Delphi Win32 MAILER project above.

The Delphi 2005/2006 NET project files are:

     Mailer_Project.bdsproj        : Delphi NET project file
     Mailer_Project.dpr            : Delphi NET project file
     Mailer_WinForm.pas            : Delphi NET form source
     Mailer_WinForm.resx           : Delphi NET resource file
     Mailer_WinForm.TWinForm.resources  : Delphi NET resource file

4.3 POP3 Example Programs

There are six POP3 email example programs. These examples read email using the POP3 server.

4.3.1 AUTO

AUTO ("auto-responder") uses two channels concurrently to read email on the POP3 server and at the same time automatically respond to all new email using the SMTP server. Edit the TCP/IP parameters in AUTO_PGM.PAS (line 82) before compiling. AUTO uses the SEEW.PAS wrapper unit.

The AUTO project files are:

     AUTO_PRJ.DPR  : Delphi project file.
     AUTO_PGM.DFM  : Delphi form file.
     AUTO_PGM.PAS  : Program source code.

4.3.2 GET RAW (GRAW)

GETRAW is an example program (for Delphi 2 and above ONLY) that downloads a specified email message without decoding it (in "raw" format). This is used to see what the email looks like on the server. Also see the READER example program, which can also download email without decoding it.

All required parameters are taken from the dialog box at runtime.

The GETRAW project files are:

     GRAW_PRJ.DPR  : Delphi project file.
     GRAW_PGM.DFM  : Delphi form file.
     GRAW_PGM.PAS  : Program source code.

4.3.3 READER

READER can read email, including multiple MIME attachments, from your POP3 server, optionally deleting each email after being read.

The READER project files are:

     READ_PRJ.DPR  : Delphi project file.
     READ_PGM.DFM  : Delphi form file.
     READ_PGM.PAS  : Program source code.

Note that the READER program uses the "direct method" (refer to SMTP/POP3 User's Manual SEE_USR). The seeDriver is explicitly called. The progress of the incoming email is displayed.

The READER program can also download email without decoding. See the note "PROGRAMMER" in READ_PGM.PAS


4.3.4 STATUS

STATUS reads the number of email messages waiting on a POP3 server, and displays the "DATE:", "FROM:", and "SUBJECT:" header fields from each email.

The STATUS project files are:

     STAT_PRJ.DPR  : Delphi project file.
     STAT_PGM.DFM  : Delphi form file.
     STAT_PGM.PAS  : Program source code.

4.3.5 POP3READ

The Pop3Read example program uses the seePop3Source function to specify an (undecoded) email message file to be read and decoded.

The Pop3Read project files are:

     POP3_PRJ.DPR  : Delphi project file.
     POP3_PGM.DFM  : Delphi form file.
     POP3_PGM.PAS  : Program source code.

4.3.6 STATUS_PROJECT

This is the Delphi 2005/2006 NET equivalent of the Delphi Win32 STATUS project above.

The Delphi 2005/2006 NET project files are:

     Status_Project.bdsproj        : Delphi NET project file
     Status_Project.dpr            : Delphi NET project file
     Status_WinForm.pas            : Delphi NET form source
     Status_WinForm.resx           : Delphi NET resource file
     Status_WinForm.TWinForm.resources  : Delphi NET resource file

5 Revision History

The SMTP/POP3 Email Engine DLLs (SEE16.DLL and SEE32.DLL) are written in ANSI C. All language versions of SEE (C/C++, .NET, Visual Basic, VB .NET, PowerBASIC, FoxPro, Delphi, dBase, Xbase++, COBOL, and Fortran) use the same identical DLLs.

Version 1.0: June 22, 1998

Version 2.0: September 28, 1998.

Version 2.1: November 28, 1998.

Version 3.0: April 12, 1999.

Version 3.1: July 16, 1999.

Version 3.2: February 7, 2000.

Version 3.3: October 3, 2000

Version 3.4: July 24, 2001

Version 3.5: March 5, 2002

Version 3.6: March 20, 2003

Version 3.7: January 28, 2005.

Version 4.0: August 17, 2006.