VB.NET Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++DelphiFoxProJavaPerlPythonRubySQL ServerVBScript

Visual FoxPro Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
String
Tar
Upload
XML
XMP
Zip Compression
Self-Extractor

More Examples...
Email Object
POP3
SMTP
RSS
Atom
Byte Array

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

Non-Chilkat Links
Text and String Handling

Send Email without Mail Server

How to send an email without a mail server (so-to-speak).

Download Chilkat Email ActiveX for POP3 / SMTP

Download Chilkat IMAP ActiveX

LOCAL loMailman
LOCAL lnSuccess
LOCAL lcRecipient
LOCAL lcSmtpHostname
LOCAL loEmail


*  Is it really possible to send email without connecting to
*  a mail server?  Not really.

*  When people ask 'Do you support sending email without
*  a mail server'?  what they're really asking is: 'I don't
*  have an SMTP server, and I want to send email.  I see
*  other components available where it's not necessary
*  to specify an SMTP server.  Does your component have that
*  ability?'  In short, the answer is Yes.  But you need
*  to understand some things before you jump in...

*  Here's what happens inside those other components
*  that claim to not need a mail server:  The component does
*  a DNS MX lookup using the intended recipient's email address
*  to find the mail server (i.e. SMTP server) for that
*  domain.  It then connects to that server and delivers the
*  email.  You're still connecting to an SMTP server -- just
*  not YOUR server.

*  Chilkat provides an MxLookup method where you can lookup
*  the SMTP hostname that services any given email address.
*  You would then assign the SmtpHost property to this value.
*  Chilkat can then connect directly to the recipient's mail
*  server and deliver the email.

*  There are a few gotcha's though...

*  First, if you're writing an application that is widely
*  distributed, your app might be running within a network
*  that blocks outgoing connections to the SMTP port.
*  Earthlink, for example, is one major ISP that does this.
*  When you are connected to the Internet via Earthlink,
*  your apps can *only* connect to Earthlink's SMTP server
*  and will not be able to reach any remote servers.  To send
*  email, you must use Earthlink's SMTP as a relay.  This is
*  common with ISPs.  So... if your application is coded
*  as in this example, it will not work within those networks.
* 
*  Second, some SMTP servers will reject unauthenticated
*  sessions attempting to send email from dynamic IP addresses.
*  You may see this error in your LastErrorText:
*  553-Your attempt to send email to us has been blocked
*  553-because your email server is not currently on that domain's Accepted
*  553-Senders list. To request addition to their Accepted Senders list,
*  553-please navigate with a Web browser to the following URL:
*  553-http://reportrbl.gate2service.com/Whitelist/?IPAddress=67.173.123.150
*  553 See http://www.dnsbl.us.sorbs.net/ (dul)

*  In a nutshell, just because you were able to do the MxLookup
*  and connect to the recipient's mail server, doesn't mean
*  you'll be able to send email -- it depends on the IP address
*  from which you're connecting.

*  Finally, the DNS lookup is potentially time consuming.
*  In addition, you cannot use somebody else's email server
*  as a relay, so if you're connecting to smtp.xyz.com, you
*  can only send email to email addresses at xyz.com.
*  To send email to 3 recipients at different domains means
*  making 3 separate connections to 3 separate SMTP servers
*  to send the email one at a time.

*  The mailman object is used for sending and receiving email.
loMailman = CreateObject('Chilkat.MailMan2')

*  Any string argument automatically begins the 30-day trial.

lnSuccess = loMailman.UnlockComponent("30-day trial")
IF (lnSuccess <> 1) THEN
    =MESSAGEBOX("Component unlock failed")
    QUIT
ENDIF

lcRecipient = "admin@chilkatsoft.com"

*  Do a DNS MX lookup for the recipient's mail server.

lcSmtpHostname = loMailman.MxLookup(lcRecipient)
IF (lcSmtpHostname = NULL ) THEN
    =MESSAGEBOX(loMailman.LastErrorText)
    QUIT
ENDIF

? lcSmtpHostname

*  Set the SMTP server.
loMailman.SmtpHost = lcSmtpHostname

*  Create a new email object
loEmail = CreateObject('Chilkat.Email2')

loEmail.Subject = "This is a test"
loEmail.Body = "This is a test"
loEmail.From = "Chilkat Support <support@chilkatsoft.com>"
loEmail.AddTo("",lcRecipient)

lnSuccess = loMailman.SendEmail(loEmail)
IF (lnSuccess <> 1) THEN
    =MESSAGEBOX(loMailman.LastErrorText)
ELSE
    =MESSAGEBOX("Mail Sent!")
ENDIF

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2007 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · ASP Mail Component · XML Parser