Sample code for 30+ languages & platforms
Visual Basic 6.0

Send MIME Bytes from a BinData via SMTP

See more SMTP Examples

Demonstrates the Chilkat MailMan.SendMimeBd method, which sends an email from caller-supplied MIME bytes held in a BinData. The arguments are the from address, the recipient list (the SMTP envelope recipients), and the BinData containing the MIME. This example loads a .eml file into a BinData and sends it.

Important: When sending caller-supplied MIME, ensure the Message-ID header is unique for each message. Sending MIME whose Message-ID was previously used can cause the message to be silently discarded as a duplicate by mail servers — see chilkatsoft.com/email_duplicate_message_id.asp.

Background: This is the binary counterpart to SendMime (which takes MIME as a string). Working from a BinData is the right choice when the message's raw bytes come straight from a file, a database blob, or a network stream — it delivers them byte-for-byte with no charset conversion that could alter the original, which matters because MIME can carry binary transfer encodings.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

'  Demonstrates the MailMan.SendMimeBd method, which sends an email from caller-supplied MIME
'  bytes held in a BinData.  The arguments are the from address, the recipient list (the SMTP
'  envelope recipients), and the BinData containing the MIME.

Dim mailman As New ChilkatMailMan

'  Configure the SMTP server connection.
mailman.SmtpHost = "smtp.example.com"
mailman.SmtpPort = 465
mailman.SmtpSsl = 1
mailman.SmtpUsername = "user@example.com"
mailman.SmtpPassword = "myPassword"

'  Load the MIME bytes to send.  Here we read a .eml file, but the bytes could come from
'  any source.
Dim bdMime As New ChilkatBinData
success = bdMime.LoadFile("qa_data/eml/message.eml")
If (success = 0) Then
    Debug.Print bdMime.LastErrorText
    Exit Sub
End If

'  IMPORTANT: When sending caller-supplied MIME, make sure the Message-ID header is unique
'  for each message.  Sending MIME that contains a Message-ID that was previously sent can
'  cause the message to be silently discarded as a duplicate by mail servers.  For details,
'  see: https://www.chilkatsoft.com/email_duplicate_message_id.asp

'  Send the MIME bytes to the envelope recipient(s).
success = mailman.SendMimeBd("alice@example.com","bob@example.com",bdMime)
If (success = 0) Then
    Debug.Print mailman.LastErrorText
    Exit Sub
End If

Debug.Print "MIME email sent."

'  Note: The path "qa_data/eml/message.eml" is a relative local filesystem path,
'  relative to the current working directory of the running application.

'  Note: Explicitly connecting/authenticating is optional.  Chilkat MailMan automatically
'  connects and authenticates -- using the property settings above -- whenever a server
'  operation requires it.  Calling the explicit connect/authenticate methods can still be
'  helpful to determine whether a failure occurs while connecting or while authenticating.