SMTP/POP3/IMAP Email Engine
Library for Visual Basic
Programmer's Manual
(SEE4VB)
Version 5.2
March 9, 2010
This software is provided as-is.
There are no warranties, expressed or implied.
Copyright (C) 2010
All rights reserved
MarshallSoft Computing, Inc.
Post Office Box 4543
Huntsville AL 35815
email : info@marshallsoft.com
Web : www.marshallsoft.com
MARSHALLSOFT is a registered trademark of MarshallSoft Computing.
1 Introduction
1.1 Features2 Library Overview
1.2 Documentation Set
1.3 Example Program
1.4 Installation
1.5 Uninstalling
1.6 Pricing
1.7 Updates
2.1 Dynamic Link Libraries3 Compiler Issues
2.2 Keycode
2.3 Win32 / Win64 STDCALL and DECLSPEC
2.4 Using Threads
2.5 Dynamic Strings
2.6 SEE Class
2.7 Visual Studio (VB.Net)
2.8 Visual Basic for Applications (VBA)
2.9 PowerBuilder
2.10 Adding SEE4VB to a Project
2.11 Error Display
3.1 Visual Basic Makefiles4 Example Programs
3.2 Compiling Programs
3.3 Explicitly Loading SEE32.DLL / SEE64.DLL
4.1 Connectionless Example Programs5 Revision History
4.2 SMTP Example Programs
4.3 POP3/IMAP Example Programs
4.4 IMAP-Only Example Programs
The SMTP/POP3/IMAP Email Engine for Visual Basic (SEE4VB) library is a toolkit that allows software developers to quickly develop SMTP and POP3/IMAP email applications in Visual Basic, Visual Studio .NET (VB.NET) or VBA (Visual Basic for Applications).
The SMTP/POP3/IMAP Email Engine (SEE) is a component DLL library of functions that uses the Windows API to provide direct and simple control of the SMTP (Simple Mail Transport Protocol), POP3 (Post Office 3), and IMAP 4 (Internet Message Access Protocol) protocols.
A straightforward interface allows sending and receiving email, including multiple MIME base64 and quoted-printable encoded attachments, over any TCP/IP network (such as the Internet). Knowledge of Winsock and TCP/IP is not needed.
The SMTP/POP3/IMAP Programmer's Manual for Visual Basic provides information needed to compile and run programs in a Visual Basic programming environment.
The SMTP/POP3/IMAP Email Engine for Visual Basic component library supports and has been tested with all versions of Microsoft Visual Basic (VB 4.0 - VB 6.0), Microsoft Visual Studio .NET Framework and Microsoft Visual Studio through Visual Studio 2010. SEE4VB can also be used with any VBA (Visual Basic for Applications) language such as Excel, Access, MS Office, etc. as well as with PowerBuilder.
SEE4VB includes numerous example programs that demonstrate SMTP and POP3/IMAP email functions used to create software applications using the SEE4VB library. All examples compile with either VB-4.0 through VB-6.0 or with Visual Studio .NET. Examples for Visual Basic for Applications (VBA) are also provided.
SEE4VB runs under all versions of Windows (Windows 95, Windows 98, Windows ME, Windows 2000, Windows 2003, Windows NT, Windows XP, Windows Vista, Windows 7, Windows Vista x64 and Windows 7 x64. The SMTP/POP3/IMAP Email Engine SDK DLLs (SEE32.DLL and SEE64.DLL) can also be used from any language (C/C++, .NET, Delphi, Visual FoxPro, COBOL, Xbase++, dBase, PowerBASIC, etc.) capable of calling the Windows API.
When comparing the SMTP/POP3/IMAP Email component library against our competition, note that:
MarshallSoft also has versions of the SMTP/POP3/IMAP Email Engine library for C/C++ (SEE4C), Delphi (SEE4D), PowerBASIC (SEE4PB), Visual FoxPro (SEE4FP), Visual dBASE (SEE4DB), Xbase++ (SEE4XB) and Cobol (SEE4CB). All versions of the SEE library use the same DLLs (SEE32.DLL and SEE64.DLL). However, the examples provided for each version are written for the specified programming language.
The latest versions of SMTP/POP3/IMAP Email Engine (SEE) component 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/IMAP 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.
Some of the many features of the SMTP/POP3/IMAP Email Engine component library are as follows:
The complete set of documentation consists of three manuals in Adobe PDF format. This is the first manual (SEE_4VB) in the set.
The SEE_4VB Programmer's Manual (SEE_4VB.PDF) is the language specific (Visual Basic) manual. All Visual Basic programming issues such as compiling, compilers and example programs are discussed in this manual.
The SEE User's Manual (SEE_USR.PDF) discusses SMTP and POP3/IMAP email processing as well as language independent programming issues such as application notes. Purchasing and licensing information is also provided.
The SEE Reference Manual (SEE_REF.PDF) contains details on each individual SEE function and provides a list of SEE error codes.
The online documentation can be accessed on the SMTP/POP3/IMAP Email Engine for Visual Basic product page at:
http://www.marshallsoft.com/see4vb.htm
The following example demonstrates the use of some of the SMTP/POP3/IMAP Email for Visual Basic component library functions:
Dim Code As Integer
Dim Server, From As String
Dim ToList, CClist, BCClist As String
Dim Subject, Message, Attachments As String
IsNull = Chr$(0)
Server = "mail.yourisp.com
From = "my name<me@myisp.com>"
ToList = "<support@marshallsoft.com>"
CClist = Chr$(0)
BCClist = Chr$(0)
Subject = "Visual Basic Test"
Message = "Emailed from SEE4VB!"
Code = seeAttach(1, SEE_KEY_CODE) ' keycode is 0 '
If Code < 0 Then
' error calling seeAttach !
'. . .
End If
' connect to SMTP mail server
Code = seeSmtpConnect(0, Server, From, From) ' chan, server, From & Reply-To addr
If Code < 0 Then
' error calling seeSmtpConnect !
'. . .
End If
Code = seeSendEmail(0, ToList, CClist, BCClist, Subject, Message, Attachments)
If Code < 0 Then
' error calling seeSendEmail !
'. . .
End If
Code = seeClose(0)
Code = seeRelease()
In the example program above, seeAttach is called to initialize SEE and then seeSmtpConnect 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.
seeSendEmail 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, in seeSendEmail are optional.
After returning from seeSendEmail, the seeClose function is called to close the connection to the SMTP server. Lastly, seeRelease is called to perform SEE termination processing and release the Winsock.
VB 4.0, VB 5.0, and VB 6.0 project filenames end with the extension ".vbp", and VB.NET/Visual Studio .NET project filenames end with "vbproj". For example,
SEEVER.VBP --- Project file for 32-bit Visual Basic (VB_4.0,5.0,6.0)
SEEVER.VBPROJ --- Project file for VB.NET / Visual Studio
Note that the Windows registry is not modified. Note that no DLL registration is required.
Uninstalling SEE4VB is very easy. SEE does not modify the registry or any Windows system files.
First, run UINSTALL.BAT, which will delete SEE32.DLLand SEE64.DLL from the Windows directory, typically C:\WINDOWS for Windows 95/98/Me/XP/2003/Vista/Win7 or C:\WINNT for Windows NT/2000.
Second, delete the SEE project directory created when installing SEE4VB.
A developer license for the SMTP/POP3/IMAP Email Library can be purchased for $115 USD. Purchasing details can be found in the SEE User's Manual, Section_1.4, "How to Purchase",
( http:/www.marshallsoft.com/see_usr.htm#Section_1.4 )
Also see INVOICE.TXT or
http://www.marshallsoft.com/order.htm
Registration includes one year of free updates and technical support. Registered DLLs never expire.
When a developer license is purchased, the developer will be sent a set of registered DLLs plus a license file (SEExxxx.LIC). 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/update.htm
After one year, your license must be updated if you want to be able to download updates. The license can be updated for $30 if ordered within one year of the original purchase (or previous update). Between one year and three years, licenses can be updated for $55. After three years, updates are $75.
The SMTP/POP3/IMAP Email component library has been tested on multiple computers running Windows 95/98/Me/XP/Vista/Win7/Vista x64/Win7 x64, and Windows NT/2000.
The SEE4VB library has been tested with several Visual Basic compilers, from VB 4.0 through VB 6.0, Microsoft Visual Basic .NET (VB.Net.) and Microsoft Visual Studio (2005, 2008 and 2010). SEE can also be used with any VBA language such as Excel, Access, MS Office as well as PowerBuilder.
The SETUP installation program will copy the DLL's to the Windows directory. Refer to Section 1.4 "Installation".
After SETUP is run, the SEE4VB files are copied to the directory specified (default \SEE4VB). Three sub-directories are created, as follows:
DOCS - All documentation files
APPS - All example code
DLLS - All DLL's
The SMTP/POP3/IMAP Email component library SDK uses a Win32 [SEE32.DLL] and Win64 [SEE64.DLL] 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".
The following files can be found in the DLL sub-directory when SETUP is run:
see32.dll - Win32 version of SEE
see64.dll - Win64 version of SEE
SEE32.DLL and SEE64.DLL are encoded with a keycode. The keycode is a 9 or 10 digit decimal number (unless it is 0), and will be found in the file KEYCODE.BAS (and KEYCODE.VB). The keycode for the evaluation version is 0. The developer will receive a new keycode and SEE32.DLL after 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 SEE64.DLL from the Windows search path or delete them.
Our libraries are written in ANSI C and compiled using the _stdcall and _declspec keywords. This means that SEE4VB uses the same calling conventions and file naming conventions as the Windows API
The SEE library functions may be called by any Windows application program capable of calling the Windows API provided the proper declaration file is used.
SEE4VB (SEE32.DLL and SEE64.DLL) is thread safe and can be used from any Windows application capable of using threads.
When passing a string to a DLL function, the DLL looks for a null character to terminate the string. This null character CHR(0) is normally present in Visual Basic strings, but can be lost if the string is modified by Visual Basic at runtime. This problem can be overcome by appending CHR(0) to the end of strings passed to SEE functions.
The Visual Basic language uses a technique known as "garbage collection" to manage string space at runtime, and may be called internally at any time by the Visual Basic runtime, asynchronous to what you may be doing in your code.
When passing a string buffer to a DLL function into which text will be copied, it is strongly recommended that the local string be allocated immediately before use. For example, a string buffer is passed to the dllGetMessage function, which copies a text message into it. Note that SPACE(80) is called immediately before dllGetMessage.
Dim Code As Integer
Dim Buffer As String * 80
' allocate buffer just before call to dllGetMessage
Buffer = SPACE(80)
' copy message into 'Buffer'
Code = dllGetMessage(Buffer, 80)
' message text is now in 'Buffer'
This technique is not necessary for passing a string to a DLL function, only when passing a buffer to a DLL into which data is to be placed by the DLL function.
The SEE class "seeClass" (seeClass.cls) is a Visual Basic class wrapper for making calls to SEE. The class name for each function is the same as the DLL function, except the leading "see" is replaced by "f".
Those functions that return strings do so by use of the "String Result" property. Instantiate seeClass as any other class in Visual Basic:
Dim X As New seeClass
Also refer to the SEE4VB Reference Manual (SEE_REF), the example project "StatProj" and the file seeClass.txt.
The use of seeClass is limited to Visual Basic 5.0 and above since previous versions of Visual Basic do not support classes.
There are a few differences between VB 4/5/6 and Visual Studio (VB.NET) that affect writing programs that use the SEE library.
Buffer = Space(128)
Length = seeErrorText(0, ErrCode, Buffer, 128)
Example Visual Studio (VB.NET) programs include:
SEEVER.VB (SEE Version Program)
STATUS.VB (Gets # emails waiting on POP3 server)
HTML.VB (Sends HTML encoded email)
The SMTP/POP3/IMAP Email component library can be used with Microsoft VBA applications such as EXCEL, ACCESS, and Microsoft Office.
Start EXCEL (or other 32-bit Office VBA program such as WORD or ACCESS), then enter design mode. Enable the "Controls Toolbox": choose "Tools" on the menu bar, then "Customize", and then check "Control Toolbox". From the control toolbox, choose and position a "Command Button". This will create code that looks like
Private Sub CommandButton1_Click()
End Sub
Replace the generated code with MODULE32.BAS. The easiest way to do this is to paste from the clipboard. Edit the 'HostName' in this code, using the name of the computer (or IP address in dotted decimal notation) where the server application (see SERVER.VBP) is running.
Exit design mode and then press the command button to start this example program.
SMTP/POP3/IMAP Email Engine can also be used with Power Builder applications. Refer to PBUILDER.TXT in the \APPS subdirectory for more information.
SEE32.PBI : Power Builder declaration file.
Copy SEE32.BAS (if running VB_4.0 /5/6), SEE32.VB (if running Visual Studio Win32), or SEE64.VB (if running Visual Studio Win64) to the same directory (folder) as the application program to which you want to add SEE code. You will find these files in the \APPS sub-directory (folder) created when you ran SETUP
After the project settings are modified (see Sections 2.10.1 and 2.10.2 below), the first SEE function that must be called is seeAttach. Often, this is best done when the Visual Basic form is first loaded. For example,
Private Sub Form_Load()
Dim Code As Integer
Code = seeAttach(1, SEE_KEY_CODE)
If Code < 0 Then
MsgBox "ERROR: Cannot attach. Check SEE_KEY_CODE."
End
End If
End Sub
The last SEE function that must be called is seeRelease. This is often best done just before the application terminates. If there is an EXIT button on the form, "Code = seeRelease()" can be added. For example,
Private Sub Exit_Click()
Dim Code As Integer
Code = seeRelease()
End
End Sub
Open the existing project with "File", "Open Project". Then choose "Insert", "Module", then add SEE32.BAS and KEYCODE.BAS to your project. If prompted to add "DAO 2.50 Object Library", choose "no".
SEE functions can now be called from your Visual Basic program.
Open the existing project with "File", "Open Project". Then choose "Project", "Add Module", then add SEE32.VB and KEYCODE.VB to your project.
SEE functions can now be called from your VB.NET program.
Open the existing project with "File", "Open Project". Then choose "Project", "Add Module", then add modules SEE32.VB (or SEE64.VB) and KEYCODE.VB to your project. If empty modules are created, replace the contents of these modules with the contents of the modules of the same name provided by us.
SEE functions can now be called from your Visual Studio 2005, Visual Studio 2008 and Visual Studio 2010 VB program.
The error message text associated with SEE error codes can be displayed by calling SeeErrorText. Each sample program contains examples of error processing. Also refer to the file seeErrors.txt for a list of all Winsock and SEE error codes.
The SMTP/POP3/IMAP Email Engine for Visual Basic component library supports and has been tested with all versions of Microsoft Visual Basic including:
The first Visual Basic for Windows (VB Version 3.0) uses a text file known as a "Visual Basic makefile" (.MAK) to list all the file components necessary to compile a program. Beginning with Visual Basic Version 4.0, the "Visual Basic Project file" (.VBP) was added. Both formats are "project files".
Beginning with Visual Studio 2003 (VB.Net), Visual Basic project files use extension ".vbproj".
Project files are provided for all examples. Project files for VB 4/5/6 end with the extension ".vbp" and end with ".vbproj" for Visual Studio (and VB.NET).
The example programs can be compiled from the Visual Basic development environment using the provided Visual Basic project files. Choose "File", then "Open Project" from the main VB menu.
After opening a project, VB v5.0 (and VB v6.0) users can save the project files in the VB v5.0 (or VB v6.0) format. When saving the example programs in VB v5.0 or VB v6.0 format, answer "no" if asked to add the "Microsoft DAO v2.5 library".
Compile and run SEEVER32 as the first example to check your installation. SEEVER does not require a TCP/IP connection.
When an application program runs that makes calls to SEE32.DLL the Windows operating system will locate SEE32.DLL by searching the directories as specified by the Windows search path. If the SEE32.DLL is placed in the \WINDOWS directory (or \WINNT for Windows NT/2000), it will always be found by Windows.
SEE32.DLL can be loaded from an explicit location by replacing "SEE32.DLL" in SEE32.BAS or SEE32.VB by the full path. For example, to load SEE32.DLL from C:\SEE4VB\APPS, the first entry in would be:
Declare Function cscAcceptConnect Lib "C:\CSC4VB\APPS\SEE32.DLL" (ByVal vSock As Long) As Long
The above also applies to SEE64.DLL as well as SEE32.DLL
Multiple Visual Basic example programs are included in SMTP/POP3/IMAP Email Engine for Visual Basic (SEE4VB). Examples for both Visual Basic 4/5/6 and Visual Studio (and VB.NET) are included. There is also an example program (StatProj) that uses the VB class "seeClass" as well as a Visual Basic for Applications example (vbaStatus).
Each example program comes with a VB project file.
Before writing your own programs, compile and run several of the example programs.
Several example programs do not require a connection to a server.
The SEEVER example program displays the SEE library version number and registration string. . Its purpose is to display the SEE version, build, and registration string as well as to verify that SEE32.DLL or SEE64.DLL is being found and loaded by Windows.
Open project SEEVER.VBP or SEEVER.VBPROJ (Visual Studio / VB.NET).
The CODETEST example program demonstrates how to use seeEncodeBuffer and seeDecodeBuffer, which encodes and decodes several test strings using BASE64. The CODETEST example program also demonstrates the use of seeEncodeUTF8 and seeDecodeUTF8.
Open project CODETEST.VBP.
The Pop3Read example program uses the seePop3Source function to specify an (undecoded) email message file to be read and decoded.
Open project POP3READ.VBP.
There are thirteen SMTP email example programs. SMTP programs send email using an SMTP server.
AUTHEN is an example program that connects to an SMTP (ESMTP) server using SMTP Authentication. You must connect to an SMTP server that allows authentication.
Open project AUTHEN.VBP.
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 your TCP/IP parameters in AUTO.FRM (line 73) before compiling.
Open project AUTO.VBP.
BCAST (Broadcast) 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.
Open project BCAST.VBP.
The FORWARD example program forwards an email message to a new recipient. Only undecoded email messages can be forwarded.
Open project FORWARD.VBP.
The GB2312 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 Microsoft OutLook).
Open project GB2312.VBP.
The GmailMVP example program emails a specified email message connecting to a GMAIL account via the (free) STUNNEL proxy server that is started and terminated without user intervention. See gmail.txt in the DOCS directory or http://www.marshallsoft.com/gmail.htm for more information on STUNNEL
Open project GmailMVP.VBP or GmailMVP.VBPROJ (Visual Studio / VB.NET).
The GmailViaProxy example program emails a specified email message connecting to a GMAIL account via the (free) STUNNEL proxy server. This differs from GmailMVP because it depends on the user to start and terminate STUNNEL.
Open project GmailViaProxy.VBP.
HELLO emails a short message. You must edit HELLO.FRM with your server and email address before compiling.
Open project HELLO.VBP
The HTML example program connects to an SMTP server and emails an HTML file containing inline embedded graphics. The graphics files are attached to the HTML email message.
Open project HTML.VBP or HTML.VBPROJ (Visual Studio / VB.NET).
The ISO8859 example program sends a text message and subject line that is 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 Microsoft OutLook).
Open project ISO8859.VBP.
MAILER emails a message, including optional MIME attachments. All required parameters are input using a dialog box at runtime. Note that <> brackets are required around the email address.
Open project MAILER.VBP or MAILER.VBPROJ (Visual Studio / VB.NET).
The MParts example program sends a multipart MIME email in which the programmer specifies the Content-Type headers for each attachment.
The two attachment types specified in this example are a sound file (.wav) and a PDF file (.pdf).
Open project MPARTS.VBP.
VERUSR (Verify User) connects to a specified SMTP server and requests verification of the user.
Due to security concerns, some SMTP servers will not honor a "verify user" request. A user that does not verify does NOT necessarily mean that the email address is not good.
Open VERUSR.VBP
There are six POP3 email example programs. These examples read email using the POP3 server.
All of these examples will also work with IMAP servers by defining the symbol, CONNECT_TO_IMAP_SERVER, in the program source code before compiling.
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 your TCP/IP parameters in AUTO.FRM (line 73) before compiling.
Open project AUTO.VBP.
GETRAW is a Win32 program that downloads a specified email message without decoding it. 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 coded inside GETRAW.FRM (line 67) and must be edited before compiling.
Open GETRAW.VBP.
The Pop3Read example program uses the seePop3Source function to specify an (undecoded) email message file to be read and decoded.
Open project POP3READ.VBP.
READER can read email, including multiple MIME attachments, from a POP3/IMAP server, optionally deleting each email after being read. READER can also download email without decoding. All required parameters are input at runtime.
Open READER.VBP.
STATPROJ gets the number of email messages waiting on your POP3 server.
The "StatProj" example uses the Visual Basic class seeClass.cls. For more details on the seeClass, refer to Section 2.8 "SEE4VB Class".
All required parameters are input at runtime. Open STATPROJ.VBP from Visual Basic 5.0 (or above).
STATUS reads the number of email messages waiting on your POP3 server, and displays the "DATE:", "FROM:", and "SUBJECT:" header fields from each email. All required parameters are input at runtime.
Open project STATUS.VBP, or STATUS.VBPROJ (Visual Studio / VB.NET).
There are three IMAP-only email example programs. These examples access the IMAP server.
All of the POP3 programs in the above section will also work with IMAP servers after defining the symbol
CONNECT_TO_IMAP_SERVER
in the program source code before compiling.
The ImapFlagsT example program tests the manipulation of flags on the IMAP server. It reads, sets, and deletes certain flags for the specified email message on the IMAP server.
IMAP flags are:
\Seen Message has been read
\Answered Message has been answered
\Flagged Message is "flagged" for urgent/special attention
\Deleted Message is "deleted" for removal by later EXPUNGE
\Draft Message has not completed composition (marked as a draft).
\Recent Message has arrived since the previous time this mailbox was selected. ["\Recent" may be fetched but not stored]
Open project ImapFlagsT.vbp (VB 4/5/6)
Open project ImapFlagsT.vbproc (Visual Studio or VB.NET)
The ImapSearch example program tests IMAP search capability.
See ImapSearch.txt or http://www.marshallsoft.com/ImapSearch.htm for a complete list of all IMAP search strings.
Example search strings as passed to seeImapSearch():
SEEN
SEEN NOT ANSWERED
FLAGGED SINCE 1-Feb-2008 NOT FROM "Smith"
LARGER 10000 NOT SEEN
Open project ImapSearch.vbp (VB 4/5/6)
Open project ImapSearch.vbproc (Visual Studio or VB.NET)
The ImapMBtest example program tests IMAP functions seeImapConnect, seeImapListMB, seeImapDeleteMB, seeImapCreateMB, and seeImapSelectMB.
Open project ImapMBtest.vbp (VB 4/5/6)
Open project ImapMBtest.vbproc (Visual Studio or VB.NET)
The SMTP/POP3/IMAP Email Engine DLLs (SEE32.DLL and SEE64.DLL) are written in ANSI C. All language versions of SEE (C/C++, Delphi, Visual Basic, PowerBASIC, FoxPro, Delphi, 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: January 17, 2000.
Version 3.3: October 3, 2000
Version 3.4: July 17, 2001
Version 3.5: March 12, 2002
Version 3.6: April 1, 2003
Version 3.7: January 21, 2005.
Version 4.0: July 3, 2006.
Version 5.0: May 1, 2008 (Win32 Version only)
Version 5.1: May 6, 2009 (Win32 and Win64) versions
Version 5.2: March 9, 2010 (Win32 and Win64) versions