|
|
EsSmtp - ActiveX Control(info@eurosource.se) (http://www.eurosource.se) Updated: 1999-05-05 This control encapsulates the SMTP protocol and compile with MIME version 1.0. This means that it can be used to send binary information as well as mail bodies containing characters like the Swedish characters åäöÅÄÖ. You can use this control to send mail over the Internet to a server on a UNIX machine or like. The control can also be used as part of Active Server Pages(ASP) to build web applications that supports Internet Mail. It automatically handles encoding of message bodies in Quoted-Printable if needed. It also allow you to send attachments (binary or text) with your mail and will automatically encode them in BASE64. There is no restriction on the message and/or attachment size. New features in version 1.1
Future version will contain the following extra features?
InstallationTransfer EsSmtp32.OCX to your \windows\system or \winnt35\system32 directory and register it by executing the command: RegSvr32 \Windows\System\ESSMTP32.OCXRegSvr32.exe can be found on the Visual Basic 4.0 CD-ROM and in our dll archive (www.eurosource.se). If RegSvr32.exe fails, it's probably because you don't have the MFC 4.0 DLL library installed on your system. This is available from many sources on the Internet including our ftp archive as MFCDLLS.ZIP. Regsvr32.exe is also included in this archive. If you want to check if you already got the files in mfcdlls.zip they are
Cookbook or how to use the EsSmtp Control
Create a EsSmtp object for an ASP applicationUse the object ID ESSMTP.EsSmtpCtrl.1 when you create an instance of the EsDesCtrl. So the code <object RUNAT="server" PROGID="ESSMTP.EsSmtpCtrl.1" id="EsSmtp"> </object>or set EsSmtp = server.CreateObject("EsSmtp.EsSmtpCtrl.1") will create the object for you.
Send a text message to a SMTP serverUse code as the following to connect to a SMTP server abd send a simple text message. EsSmtp1.DestinationAddress = "someone@somewhere.com" ' Normal
Add attachments to a mailDim file As String
Properties
Short AcountRead only. Attachment count. Increased by one for every attachment added to the mail.
Short AttachmentType( short index )Read only. If there are attachments this property fetches the type of a attachment specified by the zero based index. The number of attachments is defined by the Acount property.
String AttachmentPath( short index )Read only. If there are attachments this property fetches the full path to an encoded attachment specified by the zero based index. . The number of attachments is defined by the Acount property.
String AttachmentName( short index )Read only. If there are attachments this property fetches the filename of a attachment specified by the zero based index. The number of attachments is defined by the Acount property.
String BCCDestinationAddressThe BCC header field. See the DestinationAddress property.
String CCDestinationAddressThe CC (Carbon Copy) header field. See the DestinationAddress property.
BOOL DeliveryReceiptSet to True to indicate that a delivery receipt is wanted when mail has bee delivered by the SMTP host. Note that this is not supported among most mail delivery agents.
String DestinationAddressThis is the email addresses for the receivers of this email. You can enter as many as you like separated by a comma.
String DomainThis is your domain on the form yourdomain.com.
short ErrorNoRead only. Holds the last generated error-code. If you get a False return value form a method you should always check the ErrorNo property to determine the cause of the error. There are two types of error messages. One type is the SMTP reply codes and one is the WinSock error codes. Note that not all SMTP reply codes indicates an error. SMTP reply codes
WinSock error codes10013 - WSAEACCES, Permission denied. 10048 - WSAEADDRINUSE, Address already in use. 10049 - WSAEADDRNOTAVAIL, Cannot assign requested address. 10047 - WSAEAFNOSUPPORT, Address family not supported by protocol family. 10037 - WSAEALREADY, Operation already in progress. 10053 - WSAECONNABORTED, Software caused connection abort. 10061 - WSAECONNREFUSED, Connection refused. 10054 - WSAECONNRESET, Connection reset by peer. 10039 - WSAEDESTADDRREQ, Destination address required. 10014 - WSAEFAULT, Bad address. 10064 - WSAEHOSTDOWN, Host is down. 10065 - WSAEHOSTUNREACH, No route to host. 10036 - WSAEINPROGRESS, Operation now in progress. 10004 - WSAEINTR, Interrupted function call. 10022 - WSAEINVAL, Invalid argument. 10056 - WSAEISCONN, Socket is already connected. 10024 - WSAEMFILE, Too many open files. 10040 - WSAEMSGSIZE, Message too long. 10050 - WSAENETDOWN, Network is down. 10052 - WSAENETRESET, Network dropped connection on reset. 10051 - WSAENETUNREACH, Network is unreachable. 10055 - WSAENOBUFS, No buffer space available. 10042 - WSAENOPROTOOPT, Bad protocol option. 10057 - WSAENOTCONN, Socket is not connected. 10038 - WSAENOTSOCK, Socket operation on non-socket. 10045 - WSAEOPNOTSUPP, Operation not supported. 10046 - WSAEPFNOSUPPORT, Protocol family not supported. 10067 - WSAEPROCLIM, Too many processes. 10043 - WSAEPROTONOSUPPORT, Protocol not supported. 10041 - WSAEPROTOTYPE, Protocol wrong type for socket. 10058 - WSAESHUTDOWN, Cannot send after socket shutdown. 10044 - WSAESOCKTNOSUPPORT, Socket type not supported. 10060 - WSAETIMEDOUT, Connection timed out. 10035 - WSAEWOULDBLOCK, Resource temporarily unavailable. 11001 - WSAHOST_NOT_FOUND, Host not found. (OS dependent) - WSA_INVALID_HANDLE, Specified event object handle is invalid.
(OS dependent) - WSA_INVALID_PARAMETER, One or more parameters are invalid.
(OS dependent) - WSAINVALIDPROCTABLE, Invalid procedure table from service
provider. (OS dependent) - WSAINVALIDPROVIDER, Invalid service provider version number. (OS dependent) - WSA_IO_PENDING, Overlapped operations will complete later.
(OS dependent) - WSA_IO_INCOMPLETE, Overlapped I/O event object not in signaled
state. (OS dependent) - WSA_NOT_ENOUGH_MEMORY, Insufficient memory available.
10093 - WSANOTINITIALISED, Successful WSAStartup not yet performed. 11004 - WSANO_DATA, Valid name, no data record of requested type. 11003 - WSANO_RECOVERY, This is a non-recoverable error. (OS dependent) - WSAPROVIDERFAILEDINIT, Unable to initialize a service
provider. (OS dependent) - WSASYSCALLFAILURE, System call failure. 10091 - WSASYSNOTREADY, Network subsystem is unavailable. · that the appropriate Windows Sockets DLL file is in the current path, · that they are not trying to use more than one Windows Sockets implementation simultaneously. If there is more than one WINSOCK DLL on your system, be sure the first one in the path is appropriate for the network subsystem currently loaded. · the Windows Sockets implementation documentation to be sure all necessary components are currently installed and configured correctly. 11002 - WSATRY_AGAIN, Non-authoritative host not found. 10092 - WSAVERNOTSUPPORTED, WINSOCK.DLL version out of range. 10094 - WSAEDISCON, Graceful shutdown in progress. (OS dependent) - WSA_OPERATION_ABORTED, Overlapped operation aborted.
BOOL fDontRemoveIf this property is set to True attachment data is not removed after a call to the send method.
Short HcountRead only. This read only property gives information on how many extra header lines that has been added.
String HeaderData(short index)This is the place where you handle extra header data. This header data should be entered on the form X-extra header: some informationIf you set this property and use an index of an existing headerdata item (se the property HCount) this item is replaced with the new data. If you use an index that is larger than the number of extra header rows defined this line is added and the property HCount is increased by one. All data must be US-ASCII otherwise an error is thrown. Also it must not contain any CR (0x0d) or LF(0x0a) characters. You should prefix all strings with "X-". You can also read the header data. You must then remember to set the zero bases index to a value less than HCount. You can remove a specific row of header data with the RemoveHeaderData method or all Headerdata with the RemoveAllHeaderData method. Note that extra header data rows is not automatically removed after a send operation. They are available and will be included in all mails until you remove them.
String MailDataThis is one place where an outgoing message can be entered. MailData is limited to a maximum of 32768 characters. If you want to send a message that is greater than this you can leave this property empty and send the message as an attachment. The message is automatically encoded in Quoted Printable if needed. In this case the character set is defined as ISO-8859-1 otherwise US-ASCII and TEXT/PLAIN is used.
String MailTimeRead only. This is a copy of the date/time field of the message and is set when mail has been transferred to the SMTP server.
Short PortThe Port property is normaly set to 25 the SMTP server port. By changing this value you have the possibility to use non standard ports.
BOOL ReturnReciptSet this property to True if you want to receive a confirmation when your mail is read by its receiver(s). Note that not all mail clients support this.
String SMTPServerThis property holds either the IP-address of the mailserver or the Internet name (including the domain) for the server. If you enter the name for the server EsSmtp resolves the name to an IP-address. This resolved address is available in SMTPServerIP after it has been resolved. This takes place when a mail is sent. The accepted form is thus either mailhost.somewhere.com and 194.1.3.4 This property replaces the old SMTPServerIP and from now on you should use SMTPServer property instead of the old SMTPServerIP property except for getting information about a resolved IP-address.
String SMTPServerIPThe IP address of the SMTP server on the form 192.34.12.44 This property is replaced by SMTPServer which support both Internet names and IP-addresses as it's value.
String SourceAddressThis is the users email address on the form somone@somewhere.com
String SourceMailerThis is the name of your mailer application. This can be 'Your mailer application' or what ever you want. It defaults to nothing.
String SourceNameThis is your users name as a real text string. If this property contains non US-ASCII characters it is coded in Quoted Printable with the character set ISO-8859-1 before the message is sent.
String SubjectThis is the subject line of your message. If this property contains non US-ASCII characters it is coded in Quoted Printable with the character set ISO-8859-1 before the message is sent.
String XsubtypeYet to be defined.
String XtypeYet to be defined.
Methods
BOOL AddAttachment( string file, short type)Add an attachment to this mail coding it using base64 if needed or sending it as TEXT/PLAIN if no coding is needed. The file parameter is the path to the file to attach. Type is the type of the attachment. If set to 0 the type of the attachment is APPLICATION/OCTET-STREAM and it is encoded in base64. This is only done if the file needs to be encoded, otherwise TEXT/PLAIN is used. If set to another value a specific coding is used. The coding of the file is done when you add the attachment and status events is fired during the coding process. You can use these events to inform your user about the progress of the encoding. True is returned if the operation was successful.
short SendMail()Sends the mail, including any attachments, to the SMTP server. Status Events is fired periodically to give information about how much of the job that has been done. You can use these events to inform your user about the progress of the send operation.
BOOL RemoveAttachment( short index )With this method a specified attachment can be removed. The zero based index specifies the attachment to remove. The Acount property specifies the number of attachments available. True is returned if the operation was successful.
BOOL RemoveAllAttachments()With this method all attachments can be removed. This is usually done automatically when a mail has been sent. If the fDontRemove property is set to True they will however not be removed and this method or RemoveAttachment(i) must be used to remove attachments. True is returned if the operation was successful.
BOOL RemoveHeaderData( short index )Removes a header data row specified by the zero based index parameter. The number of specified header data rows is available in the HCount property. True is returned if the operation was successful.
BOOL RemoveAllHeaderData()Removes all defined HeaderData rows. Note that this is not automatically done when mail is sent. True is returned if the operation was successful.
Events
Status (short progress)Status gives progress information when certain operations is in progress. This can be useful when you need to inform a user about the progress and what is happening during lengthy operations. The progress is directly expressed is percentage of the task completed. A task is always started with an event where progress=0 and ended with an event where progress = 100. Sendmail and AddAttachment are methods which trigger this event.
Response( LPCTSTR str )This event gives response text from the server.
Additional Documentation
Where to get the control?It is possible that you are reading this documentation without having access to the control itself. If you have Internet access you just need to connect to http://www.eurosource.se and fetch a fully working sample of the control. At this location you can also find samples on how to use the control. We can email the control anywhere in the world if you send us a request to do so. Please state if you want MIME or BINHEX coding. Send request to sales@eurosource.se If you use the unregistered version of the control a splash screen is displayed from time to time reminding you to register.To get rid of this nag-screen you need to register. Information is available at our site. We ship anywhere in the world with World-wide First Class/Airmail if you select this option. The only media supported is 3.5" diskettes.The charge for this type of delivery is $15 (USD) extra. SupportYou can get support by sending email to support@eurosource.se. You can also find relevant information on-line at http://www.eurosource.se We also check the newsgroup comp.lang.basic.visual.3rdparty on a regular basis and will try to help on all questions posted there. How to contact us
|