Our Sites:  Tutorial Buzz  |  How To Tree  |  Recipe Voice  |  Golf Twist  |  DIY Click  |  Movie Lizard  |  Halloween Twist  
Search:
Submit Link
Mail to a Friend
RSS FeedReceive updates via our RSS feed

Creating and sending HTML email in Visual Basic - Part 5

by: AfterLogic

Advanced Topics
This tutorial covers body and alternative body encoding usage and limitations using AfterLogic's MailBee SMTP component in Visual Basic. It compares encoding methods available in MailBee (Quoted-Printable and Base64).

Tutorial map:
Part 1 - Sending simple HTML e-mail
Part 2 - Importing HTML file into message body
Part 3 - Assembling body text from different sources
Part 4 - Building alternative message body
Part 5 - Advanced topics

HTML documents may contain symbols that are not allowed by email standards. For example, some mail gateways truncate all 8bit symbols to 7bit making it's impossible for extended characters (with ASCII codes bigger than 127) to pass through such gateways.

The process of encoding converts source text into form that can be freely transmitted by all mail gateways. Once received, the text is decoded, and original text is restored.

Different encoding methods fit better for different text patterns. If the source contains mostly 7bit characters, Quoted-Printable encoding is preferred. Base64 encoding is more suitable for binary data (binaries usually contain lots of 8bit characters) or for texts written in extended charsets such as UTF-8 or Cyrillic.

Default BodyEncoding setting is Quoted-Printable (QP for short).

Note 1: You might need to change default encoding setting only if you are concerned about the message body size (in some cases, Quoted-Printable is more space-consuming than Base64 or "no encoding" encodings) or if you have to support very old e-mail clients which do not support Quoted-Printable (in this case, you should use "no encoding" method BodyEncoding=0).

Note 2: The side (usually positive) effect of using Base64 or Quoted-Printable encoding instead of "no encoding" is keeping original line-wrapping of plain-text content.

Code example:

' The code below is common for all examples in this topic

Dim Mailer

' Using Visual Basic to create object
Set Mailer = CreateObject("MailBee.SMTP")

' Using ASP to create object
' Set Mailer = Server.CreateObject("MailBee.SMTP")

Mailer.LicenseKey = "put your license key here"
Mailer.ServerName = "mail.server.com"

' The code below is specific to this sample

Mailer.Message.ToAddr = "bill@yoursite.com"
Mailer.Message.FromAddr = "joe@mysite.com"
Mailer.Message.Subject = "Hello"

' Put extended char (trademark character) into the body
Mailer.Message.BodyText = "<html><body>MailBee™</body></html>"

' Set HTML format for the body
Mailer.Message.BodyFormat = 1

' Force Quoted-Printable (QP) encoding.
' However, QP is a default setting, so the next
' line can be omitted, and shown for clarity only

Mailer.Message.BodyEncoding = 2

Mailer.Send
Mailer.Disconnect

If the message includes alternative body (AltBodyText is non-empty), it's recommended to encode this body too.

AltBodyEncoding property sets encoding method for AltBodyText in the same manner as BodyEncoding sets encoding for BodyText.

Code example:

' The code below is common for all examples in this topic

Dim Mailer
' Using Visual Basic to create object
Set Mailer = CreateObject("MailBee.SMTP")

' Using ASP to create object
' Set Mailer = Server.CreateObject("MailBee.SMTP")

Mailer.LicenseKey = "put your license key here"
Mailer.ServerName = "mail.server.com"

' The code below is specific to this sample

Mailer.Message.ToAddr = "bill@yoursite.com"
Mailer.Message.FromAddr = "joe@mysite.com"
Mailer.Message.Subject = "Hello"

' Put extended char (trademark character) into HTML body
Mailer.Message.BodyText = "<html><body>MailBee™</body></html>"

' Put extended char (trademark character) into plain-text body
Mailer.Message.AltBodyText = "MailBee™"

' Set HTML format for the body
Mailer.Message.BodyFormat = 1

' Enable Base64 encoding.
' In fact, QP is more efficient here,
' so Base64 is used for illustration purposes only.

Mailer.Message.AltBodyEncoding = 3

' Enable QP encoding to illustrate that
' HTML body and plain-text body can use
' different encoding methods

Mailer.Message.BodyEncoding = 2

Mailer.Send
Mailer.Disconnect

About AfterLogic
AfterLogic specializes in email and messaging components. You can visit AfterLogic at http://www.afterlogic.com/. Here you can download evaluations for all their email and messaging components and get support.

© Copyright 2002-2005 Afterlogic, an iForum LLC division

Home  |  News  |  Source Code  |  Tutorials  |  Components  |  Tools  |  Books  |  Free Magazines  |  Jobs  |  Gear  |  Hosting  |  Links
 
Copyright © 2000 - 2006 Code Beach  |    |  Privacy Policy
 
Free thumbnail preview by Thumbshots.org