XPSMTP  

Home
Up
What's New
DTS
SQL-DMO
SQL-NS
SQL Agent
Misc. Tools
Events
FAQ
Links
About...

 

XPSMTP.DLL - SQL Server SMTP Mail XP

version: 1.1.0.8

last updated: 12 August 2002

platform: MSDE, SQL Server 7.0 or 2000 running Windows NT 4.0 and higher

Content:


Description

Usage

Parameters

Return codes

Installation

Uninstall

Version and platform support

Known limitations

FAQ

Troubleshooting

License

Planned functionality enhancements

Realized functionality enhancements

Change log

Description:


XPSMTP provides a SMTP based SQL Mail solution for sending MIME based email over SMTP, implemented as an Extended Stored Procedure.

It does not require any software to be installed, just a SMTP email server that can handle the outgoing mail request. XPSMTP is using TCP/IP sockets to communicate to port 25. XPSMTP does not spawn additional threads, the xp_smtp_sendmail request is handled on the same thread as it is being called on by SQL Server. Each call to xp_smtp_sendmail establishes a connection to the SMTP server and disconnects when done sending the email. The connection is created using asynchronous communication and aborts based on a timeout value (@timeout which by default is 10000 milliseconds, so 10 seconds).

 

Usage:


XPSMTP only supports named parameters, since the number possible of parameters is already big and will get extended over time and since most of these parameters are optional, XPSMTP does not support ordinal parameters, mainly to reduce complexity, ambiguity and the change on mistakes.

 

-- ************************************************************************
-- Begin of sample section

-- ************************************************************************
 

-- ************************************************************************
-- minimum number of parameters
-- ************************************************************************
declare @rc int
exec @rc = master.dbo.xp_smtp_sendmail
    @FROM   = N'MyEmail@MyDomain.com',
    @TO     = N'MyFriend@HisDomain.com'
select RC = @rc
go

-- ************************************************************************
-- more comprehensive example
-- ************************************************************************
declare @rc int
exec @rc = master.dbo.xp_smtp_sendmail
    @FROM       = N'MyEmail@MyDomain.com',
    @FROM_NAME  = N'Joe Mailman',
    @TO         = N'MyFriend@HisDomain.com',
    @CC         = N'MyOtherFriend@HisDomain.com',

    @BCC        = N'MyEmail@MyDomain.com',

    @priority   = N'HIGH',
    @subject    = N'Hello SQL Server SMTP Mail',
    @message    = N'Goodbye MAPI, goodbye Outlook',
    @type       = N'text/plain',
    @attachments= N'c:\attachment1.txt;c:\attachment2.txt',
    @server     = N'mail.mydomain.com'
select RC = @rc

go

 

-- ************************************************************************
-- sending HTML mail
-- ************************************************************************
declare @rc int
exec @rc = master.dbo.xp_smtp_sendmail
    @FROM       = N'MyEmail@MyDomain.com',
    @TO         = N'MyFriend@HisDomain.com',
    @subject    = N'My first HTML mail',
    @message    = N'<HTML><H1>This is some HTML content</H1></HTML>',

    @type       = N'text/html'
select RC = @rc
go

 

-- ************************************************************************
-- sending HTML mail
-- ************************************************************************
declare @rc int

exec @rc = master.dbo.xp_smtp_sendmail

    @FROM        = N'MyEmail@MyDomain.com',
    @FROM_NAME   = N'Joe Mailman',

    @TO          = N'MyFriend@HisDomain.com',

    @subject     = N'ASCII HTML messagefile',

    @type        = N'text/html',
    @messagefile = N'c:\msg.html'
select RC = @rc

go

 

-- ************************************************************************
-- all possible parameters
-- ************************************************************************
declare @rc int
exec @rc = master.dbo.xp_smtp_sendmail
    @FROM       = N'MyEmail@MyDomain.com',
    @FROM_NAME  = N'My Full Name',

    @replyto    = N'MyReplyAddress@MyDomain.com',
    @TO         = N'MyFriend@HisDomain.com',
    @CC         = N'',
    @BCC        = N'',
    @priority   = N'NORMAL',
    @subject    = N'Hello SQL Server SMTP Mail',

    @type       = N'text/plain',
    @message    = N'Goodbye MAPI, goodbye Outlook',

    @messagefile= N'',
    @attachment = N'',

    @attachments= N'',
    @codepage   = 0,

    @timeout    = 10000,
    @server     = N'mail.mydomain.com'
select RC = @rc

go

 

-- ************************************************************************
-- using variables

-- ************************************************************************
declare @FROM NVARCHAR(4000),
        @FROM_NAME NVARCHAR(4000),
        @TO NVARCHAR(4000),
        @CC NVARCHAR(4000),
        @BCC NVARCHAR(4000),
        @priority NVARCHAR(10),
        @subject NVARCHAR(4000),

        @message NVARCHAR(4000),
        @type NVARCHAR(100),
        @attachments NVARCHAR(4000),
        @codepage INT,
        @rc INT

select  @FROM = N'MyEmail@MyDomain.com',
        @FROM_NAME = N'Joe Mailman',
        @TO = N'MyFriend@HisDomain.com',
        @CC = N'',
        @BCC = N'',
        @priority = N'High',
        @subject = N'SQL Server SMTP mail',
        @message = N'<HTML><H1>Hello SQL Server SMTP SQL Mail</H1></HTML>',
        @type = N'text/html',
        @attachments = N'',
        @codepage = 0

exec @rc = master.dbo.xp_smtp_sendmail
        @FROM = @FROM,
        @TO = @TO,
        @CC = @CC,
        @BCC = @BCC,
        @priority = @priority,
        @subject = @subject,
        @message = @message,
        @type = @type,
        @attachments = @attachments,
        @codepage = @codepage,
        @server = N'mail.sqldev.net'

select RC = @rc
go

-- ************************************************************************
-- using a dumpfile for diagnostics
-- ************************************************************************
declare @rc int

exec @rc = master.dbo.xp_smtp_sendmail

    @FROM        = N'MyEmail@MyDomain.com',
    @FROM_NAME   = N'Joe Mailman',

    @TO          = N'MyFriend@HisDomain.com',

    @subject     = N'ASCII HTML messagefile',

    @type        = N'text/html',
    @message     = N'Hello World',

    @dumpmsg     = N'C:\TEMP\dumpmsg.log'
select RC = @rc

go

 

-- ************************************************************************
-- ping server
-- ************************************************************************
declare @rc int

exec @rc = master.dbo.xp_smtp_sendmail

    @server      = N'mail.sqldev.net',

    @port        = 25,
    @ping        = 1

select RC = @rc

go

 

-- ************************************************************************
-- End of sample section

-- ************************************************************************
 

Parameters:


 

This is the complete list off parameters used by xp_smtp_sendmail. The parameter names used are case-insensitive. When a parameter is marked as mandatory (only @FROM and @TO) this means you have to provide a valid value, all other parameters are optional. Either because default values are provides, either because they are really optional in nature.

 

Name Data types allowed Default value Mandatory Value ranges Description
@FROM NVARCHAR(4000),  VARCHAR(8000) NULL Mandatory   Email address of the sender
@FROM_NAME NVARCHAR(4000), VARCHAR(8000) NULL Optional   Display name of the sender
@TO NVARCHAR(4000), VARCHAR(8000) NULL Mandatory   Recipients, separated by commas
@replyto NVARCHAR(4000), VARCHAR(8000) NULL Optional   Reply to email address
@CC NVARCHAR(4000), VARCHAR(8000) NULL Optional   CC recipients, separated by commas
@BCC NVARCHAR(4000), VARCHAR(8000) NULL Optional   BCC recipients, separated by commas
@priority NVARCHAR(10), VARCHAR(10) NORMAL Optional LOW, NORMAL or HIGH Priority of the message
@subject VARCHAR(4000), VARCHAR(8000) NULL Optional   Subject of the email message
@type NVARCHAR(100), VARCHAR(100) text/plain Optional text/plain 
text/html
Specifies the message content type as plain text or HTML
@message NVARCHAR(4000), VARCHAR(8000) NULL Optional   Body text of the email message. The maximum line length is 1000 characters. Lines need to be separated using a carriage return linefeed (\r\n or using T-SQL char(13) | char(10)).
@messagefile NVARCHAR(4000), VARCHAR(8000) NULL Optional Valid fully qualified file path and name. Size of file not larger than 64KB Pointer to a file which contains the message text. The file can contain the message text as plain text or in HTML format. The file can either be ASCII or Unicode. The max. file size allowed is 64KB. The maximum line length is 1000 characters. Lines need to be separated using a carriage return linefeed (\r\n or using T-SQL char(13) | char(10)).
@attachment NVARCHAR(4000), VARCHAR(8000) NULL Optional Valid fully qualified file path and name. Pointer to file, to be included as attachment of the email message.
@attachments NVARCHAR(4000), VARCHAR(8000) NULL Optional Valid fully qualified file path and name. Pointers to files, to be included as attachments of the email messages, separated by semicolons (;)
@server NVARCHAR(4000), VARCHAR(8000) smarthost Optional Valid hostname or IP address pointing an SMTP mail server SMTP server, expressed as hostname or IP address. By default this is configured as "smarthost".
@port INT 25 Optional Valid socket port number Port number for SMTP service, default port 25
@codepage INT 0     Codepage of strings supplied when using ASCII strings
@timeout INT 10000
(=10 secs)
Optional [0 >= WaitForSingleObject] Connection timeout in milliseconds
@dumpmsg NVARCHAR(4000), VARCHAR(8000) NULL Optional Valid fully qualified file path and name. Dumps message to dump file.
NOTE: Requires  sysadmin role membership
@ping INT NULL Optional [0 | 1] Tries to connect to @server (using @timeout), if successfuly connected @rc = 0 otherwise @rc = 1. This can be used to validate connections to the SMTP server

 

Return codes:


The procedure returns only two return codes, 0 (zero) indicating successful execution, 1 indicating failure always accompanied with an error message.

 

This is how to retrieve the return code:

 

declare @rc int

exec master.dbo.xp_smtpsendmail ...

select @rc

Installation:


To install XPSMTP follow these instructions:

  1. For SQL Server 7.0 download XPSMTP70.ZIP and unzip the files
    For SQL Server 2000, download XPSMTP80.ZIP and unzip the files
     

  2. Copy xpsmtpXX.dll into the SQL Server BINN directory. For SQL Server 7.0 copy XPSMTP70.DLL, for SQL Server 2000 copy XPSMTP80.DLL

    For SQL Server 7.0 the default installation location is "C:\MSSQL7\BINN"
    For SQL Server 2000 the default location is "C:\Program Files\Microsoft SQL Server\MSSQL\Binn"
     

  3. Register the extended stored procedure using OSQL or SQL Query Analyzer by executing:
    -- SQL Server 7.0 install
    exec sp_addextendedproc 'xp_smtp_sendmail', 'xpsmtp70.dll'
    -- SQL Server 2000 install
    exec sp_addextendedproc 'xp_smtp_sendmail', 'xpsmtp80.dll'
     

  4. Grant rights to the correct set of users using OSQL or SQL Query Analyzer by executing:
    grant execute on xp_smtp_sendmail to public
    By default only the member of the sysadmin role have execution rights on the XP after it is being registered

Uninstall:


To remove XPSMTP from a system follow these instructions:

  1. Force the DLL out of memory, using OSQL or SQL Query Analyzer by executing:
    dbcc xpsmtp70(free) -- for SQL Server 7.0
    dbcc xpsmtp80(free) -- for SQL Server 2000
     

  2. Unregistered the XP from the system, using OSQL or SQL Query Analyzer by executing:
    exec sp_dropextendedproc 'xp_smtp_sendmail'
     

  3. Delete the XPSMTP70.DLL or XPSMTP80.DLL from the SQL Server BINN directory

Version and platform support:


XPSMTP is tested and supported on:

  • SQL Server 2000 (including all available service packs), running on Windows NT 4.0, Windows 2000 and Windows XP

  • MSDE 2000 (including all available service packs), running on Windows NT 4.0, Windows 2000 and Windows XP

XPSMTP is supported on:

  • SQL Server 7.0 (including all available service packs), running on Windows NT 4.0, Windows 2000 and Windows XP

  • MSDE 1.0 (including all available service packs), running on Windows NT 4.0, Windows 2000 and Windows XP

XPSMTP is NOT supported or tested in any way or form on:

  • SQL Server 7.0 or 2000 running on Windows 95, Windows 98, Windows 98 Second Edition or Windows Me

  • MSDE 1.0 running on Windows 95, Windows 98, Windows 98 Second Edition or Windows Me

  • MSDE 2000 running on Windows 95, Windows 98, Windows 98 Second Edition or Windows Me

  • SQL Server 7.0 running on the Alpha processor

Note: SQL Server 7.0 and Windows NT 4.0 usage

When using SQL Server 7.0 on Windows NT 4.0, you need to install Internet Explorer version 5.5 SP1 or higher, otherwise you might run into the following error message: "The data area passed to a system call is too small."

Known limitations:


  • All error messages are in English and do not reflect the client side locale ID

  • The current version does not provide @query support like the one found in SQL Mail

FAQ:


  • Q: Which RFC's is XPSMTP based on?
    A: The XPSMTP implementation is based on  RFC 821, RFC 822 and RFC 2821
     

  • Q: Does XPSTMP rely on MAPI?
    A: XPSMTP does not rely on MAPI or any other Microsoft Outlook or Outlook Express components.
     

  • Q: How can I use XPSMTP to test the connection to my mail server and check for the presence of an SMTP server
    A: XPSMTP provides a @ping option, which will try to connect to the host and port specified and send a SMTP HELO command to the server, when this is performed succesfully, the return code of the XP is 0 (zero), in case of an error 1 is returned.

    Example:

    -- ping the default settings (@server = N'smarthost', @port = 25)
    declare @rc int
    exec @rc = master.dbo.xp_smtp_sendmail @ping = 1
    select @rc

    -- ping the server using default port settings (@port = 25)
    declare @rc int
    exec @rc = master.dbo.xp_smtp_sendmail @server = N'mail.sqldev.net', @ping = 1
    select @rc

    -- ping server using @server and @port
    declare @rc int
    exec @rc = master.dbo.xp_smtp_sendmail @server = N'mail.sqldev.net', @port = 25, @ping = 1
    select @rc
     

  • Q: Why is an extra carriage return linefeed is inserted every 998th character?
    A: XPSMTP uses a maximum line length of 1000 characters, minus two for storing a carriage return linefeed (\r\n) to terminate the line. When you are sending a message which contains a line or lines that are longer then the maximum line length, XPSMTP automatically inserts a carriage return linefeed (\r\n) before it sends the line to the SMTP server. If you have embedded carriage return linefeeds inside your message which occur before the maximum line length of 1000 characters, the string is terminate at that point and send to the server, in which case no extra carriage return linefeed is added. The problem occurs when you are using only using line feeds (\n) without the carriage return (\r) inside your message. So the workaround is to use carriage return linefeeds (\r\n) instead of linefeeds (\n). In T-SQL a carriage return linefeed can be represented using char(13) + char(10). In a future release XPSMTP will automatically be able to use both \n as a \r\n to terminate lines before exceeding the maximum line length of a 1000 characters.
     

Troubleshooting:


  • Sending e-mail, returns the following error:
    Error: connecting to server smarthost

    This is an indication that you do not have a smarthost defined or the smarthost entry can not be resolved. The default hostname that XPSMTP is using for sending e-mail is named "smarthost". To override this you have to supply the @server parameter, with a valid hostname pointing to an SMTP server. If the SMTP does not listen on the default SMTP socket port 25, you can override the used port using the @port parameter.

    To determine if a smarthost defined use ping:

    Pinging a undefined "smarthost", will results in:
    ping smarthost
    Ping request could not find host smarthost. Please check the name and try again.

    Pinging a "smarthost", which can not be reached will result in:

    ping smarthost

    Pinging smarthost [192.168.1.201] with 32 bytes of data:

    Request timed out.
    Request timed out.
    Request timed out.
    Request timed out.

    Ping statistics for 192.168.1.201:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

    Pinging a "smarthost" which is defined and can be reached, will result in:

    ping smarthost
    Pinging smarthost [175.45.9.106] with 32 bytes of data:
    Reply from 175.45.9.106: bytes=32 time=72ms TTL=59
    Reply from 175.45.9.106: bytes=32 time=95ms TTL=59
    Reply from 175.45.9.106: bytes=32 time=119ms TTL=59
    Reply from 175.45.9.106: bytes=32 time=76ms TTL=59
    Ping statistics for 175.45.9.106:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
    Minimum = 72ms, Maximum = 119ms, Average = 90ms


    For more information with regards to what a smarthost is, see the FAQ section.

    Example:
    declare @rc int
    exec @rc = master.dbo.xp_smtp_sendmail @server = N'mail.sqldev.net',  @from = N'', @to = N'', @subject = 'test'

    declare @rc int
    exec @rc = master.dbo.xp_smtp_sendmail @server = N'mail.sqldev.net',  @port = 26, @from = N'', @to = N'', @subject = 'test'
     

  • Sending e-mail to an external e-mail address returns in the following error:
    Server response: 550 5.7.1 Unable to relay for MyFriend@HisDomain.com

    This is an indication that your mail server has not been enabled to relay, for more information on testing Open Relay check the following article at SecWiz
     

  • Send e-mail using an external message file, return the following error:
    Error: @messagefile "c:\attachments\reports\StatusReport.htm" file size is larger then allowed max size of 65536 bytes

    This is an indication that your message file exceeds the currently hardcode limit of 64KB, there is no work around for this in the current release, a future release will remove this limitation.
     

  • List of general SMTP errors:

    Number Description
    421 <domain> service not available, closing
    450 request action aborted, local error in processing
    500 syntax error, command unrecognized
    550 requested action not take (mailbox not found)
    551 user not local
    554 transaction failed

License


XPSMTP - Copyright © SQLDev.Net 1991-2003 (http://SQLDev.Net)

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of SQLDev.Net nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

  4. Binaries, source code and any other parts of this distribution may not be incorporated into any software licensed under the terms of the GNU General Public License (GPL) or the GNU Lesser Public License (LGPL). Binaries, source code and any other parts of this distribution
    may not be incorporated into any software licensed under any license requiring source code disclosure of derivative works.

  5. Modified redistributions of source code, binaries and/or documentation must carry the above copyright as required by clauses (1) and (2) and may retain the name "SQLDev.Net" in source code, documentation and metadata.

  6. The name "SQLDev.Net" is a trademark of SQLDev.Net B.V. the Netherlands.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     

Planned functionality enhancements:


 

The next release will contain the following feature (subject to change):

  • Authentication support: LOGIN PLAIN, AUTH LOGIN and CRAM MD5
     

  • Longer @message support; using text and ntext type parameters
     

  • Multi part messages; @message1, @message2,... @message9. Plan is to support maximum 9 message parts, parts are in order based on the name of the parameter, no based on the order in which the parameters are supplied in the parameter list.
     

  • Multi server support: @server = N'mail.server1.com; mail.server2.com; mail.server3.com'. Plan is to support maximum 3 servers, which will be used in order, when one fails, two is used, when two fails, three is used, if three fails the operation is failed. The servers are not used in a round-robin fashion so this is no solution for load balancing.
     

  • Addition of a retry counter, for retry on failure (plan is to support maximum of 10 retries) (Behavior of @retry in combination with multiple servers is not yet deteremined.)
     

  • Configurable maximum files size, which is currently limited to 64K, int @messagefile_maxsize overrides the default, when not specified 64K is still used.
     

  • Registry based default configuration. xp_smtp_config can be used to set and retrieve default values for almost all parameters, like @server, @from, @from_name, @timeout etc. The additional @allow_overrides flags determines the behavior of the default values when tried to be overwritten by the user. False will fail the operation with a "Error: overwriting default parameter (%s)", true will override the default value with the provided value
     

  • Add an output parameter (@errmsg OUTPUT) which contains the error message in case of a failure to have better control over the execution and enable to XP to work in complete silent mode. The parameter would only contain data if the return code of the XP is not equal to 0 (zero) indicating some sort of failure.
     

  • Addition of query support for emailing query execution results like xp_sendmail does, where the query result either is attached or is send as the body of the email message. Supports multiple result sets and output to CSV and XML. Query support is added using a different XP name, xp_smtp_sendmail_query to allow security differentiation.
     

For future release:

  • Query based email, this will allow for table driven email generation. Idea is to create a table or view representing the parameters of xp_smtp_sendmail like this:

    create table mailfeed
    (
        FROM        NVARCHAR(4000) NOT NULL,
        FROM_NAME   NVARCHAR(4000) NULL,
        TO          NVARCHAR(4000) NOT NULL,
        CC          NVARCHAR(4000) NULL,
        BCC         NVARCHAR(4000) NULL,
        priority    NVARCHAR(10)   NULL,
        subject     NVARCHAR(4000) NULL,
        type        NVARCHAR(100)  NULL,
        message     NVARCHAR(4000) NULL,
        messagefile NVARCHAR(4000) NULL,
        attachment  NVARCHAR(4000) NULL,
        attachments NVARCHAR(4000) NULL,
        server      NVARCHAR(4000) NULL,
        codepage    INT NULL,
        timeout     INT NULL
    )

    The table or view would supply the values for the parameters, the scope of the rows used to send email are determined by the @querymail parameter which contains a query like:

    select @querymail = N'select * from mydb.dbo.mailfeed where extrafield = 1'

    All columns that do not match names of parameters or are excluded by the query will either get the value supplied to xp_smtp_sendmail or the default value if no value was supplied.
     

  • Allow attaching open files like the SQL Server ERRORLOG file
     

  • E-mail address validation only execution.
     

  • S/MIME support
     

  • Keep socket connection open between invocations of the XP, to improve execution performance
     

  • SQL Server 6.x support
     

  • Windows 9x support
     

  • Configurable character set and content encoding
     

  • Other suggestions, ideas, please send email to ideas

Realized functionality enhancements:


  • Add configurable SMTP port support (instead of hard coded port 25)
    Added in version 1.1.0.8
     

  • Support for text/html MIME encoding besides the current text/plain MIME encoding
    Added in version 1.1.0.3
     

  • Add ability to pass multiple file attachments (adding @attachments parameter)
    Added in version 1.1.0.3
     

  • Add ability to read message text from file, to bypass the XP parameter size limit
    Added in version 1.1.0.3

Change log:


Version Date Description
1.1.0.8 2002-08-12 Added @port support
1.1.0.7 2002-07-11 Adds support for: @ping server, @replyto, display name handling for @TO, @CC and @BCC, improved HTML mail and distinct error messages for each error and @dumpmsg = N'c:\msg.txt' functionality for diagnostics.
Fixed problems: varchar(8000) messages size problem and recipients concatenation problems
1.1.0.3 2002-03-01 Adds support for HTML mail via the @type = 'text/html' parameter.
Adds support for passing multiple attachments via the @attachments parameter.
Adds support for passing the message text via a file instead of the @message parameter, by the addition of the @messagefile parameter.
1.0.0.2 2002-02-20 Fix for SQL Server 7.0 problem with incorrect linkage to OPENDS60.DLL causing error 182 during execution. This fix resulted in the introduction of version specific binaries: XPSMTP70.DLL and XPSMTP80.DLL.
This fix only affects SQL Server 7.0 users, SQL Server 2000 users do not have to upgrade from version 1.0.0.1
1.0.0.1 2002-02-14 First release

***
 

Questions or problems regarding this web site should be directed to webmaster@sqldev.net.
Copyright © 1991-2003 SQLDev.Net. All rights reserved.
Last modified: 07/06/03.