Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Email Distribution List with Mail Merge
VB.NET source code example showing how to send email using a distribution list with mail-merge.
' Create a mailman object for sending email.
Dim mailman As New Chilkat.MailMan()
' Any string passed to UnlockComponent automatically begins a 30-day trial.
Dim success As Boolean
success = mailman.UnlockComponent("Hello World")
If (success <> true) Then
MsgBox(mailman.LastErrorText)
Exit Sub
End If
' Set the SMTP server.
mailman.SmtpHost = "smtp.earthlink.net"
' Create an array of email addresses.
' This is where you might load email addresses from a file,
' or load email addresses from a database such as Access, SQL Server, Oracle, MySQL, etc.
Dim array As New Chilkat.StringArray()
array.Unique = True ' Do not allow duplicates in the array.
' Chilkat will be able to parse the full email addresses...
array.Append("Chilkat Support <support@chilkatsoft.com>")
array.Append("""Chilkat Sales"" <sales@chilkatsoft.com>")
array.Append("<matt@chilkatsoft.com>")
array.Append("joe@chilkatsoft.com")
Dim email As New Chilkat.Email()
' Make this email have both HTML and plain-text alternatives.
' Be sure to use CRLF line endings in plain-text email.
email.AddPlainTextAlternativeBody("Hello CUSTOMER_NAME" + ControlChars.Cr + ControlChars.Lf + "This is a test")
email.AddHtmlAlternativeBody("<html><body>Hello CUSTOMER_NAME<br>This is a test</body></html>")
email.Subject = "CUSTOMER_NAME: This is a test."
email.FromName = "Bob"
email.FromAddress = "bob@chilkatsoft.com"
Dim i As Integer
Dim numEmails As Integer = array.Count
Dim friendlyName As String
For i = 0 To numEmails - 1
email.ClearTo()
' We call AddMultipleTo even though we are only adding a single
' email address. AddMultipleTo parses a comma separated list of
' email addresses, each of which may or may not include the
' friendly name.
email.AddMultipleTo(array.GetString(i))
' Get the friendly name that was in the email address.
friendlyName = email.GetToName(0)
If friendlyName.Length = 0 Then
friendlyName = friendlyName + "Customer"
End If
' Set the replacement pattern. When the email is sent, all occurances of
' CUSTOMER_NAME are replaced with the replacement string.
email.SetReplacePattern("CUSTOMER_NAME", friendlyName)
' The email can have any number of replacement patterns. Simply
' set a replace pattern for each.
' email.SetReplacePattern("PATTERN2","replacement2");
' email.SetReplacePattern("PATTERN3","replacement3");
Dim sendQueued As Boolean = True
' One option is to send the email in the background using the SMTPQ service:
If sendQueued Then
' Sending the email using SMTPQ allows for emails to be sent by multiple
' threads simultaneously by the SMTPQ process. The email sending will
' also survive system reboots / crashes because it will resume when the
' service restarts on system startup.
If Not mailman.SendQ(email) Then
' We could send the email in-process:
MessageBox.Show(mailman.LastErrorText)
Exit For
End If
Else
' Or... the mail can be sent in-process.
If Not mailman.SendEmail(email) Then
' We could send the email in-process:
MessageBox.Show(mailman.LastErrorText)
Exit For
End If
End If
Next i
|
© 2000-2012 Chilkat Software, Inc. All Rights Reserved.