Go
Go
Send Email to Distribution List
See more SMTP Examples
Sends the same email to a list of 1000 email addresses in 50 sends where each email has 20 recipients.Note: Chilkat is not intended nor designed for mass emailing. A solution such as this might be used for a corporate emailing to employees, or an emailing to newsletter subscribers.
Chilkat Go Downloads
success := false
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mailman := chilkat.NewMailMan()
mailman.SetSmtpHost("smtp.mymailserver.com")
mailman.SetSmtpPort(465)
mailman.SetSmtpSsl(true)
mailman.SetSmtpUsername("myUsername")
mailman.SetSmtpPassword("myPassword")
// Create a new email object
email := chilkat.NewEmail()
email.SetSubject("This is a test")
email.SetBody("This is a test")
email.SetFrom("Senders Name <sender@example.com>")
email.AddTo("Subscribers","subscribers@example.com")
bdMime := chilkat.NewBinData()
mailman.RenderToMimeBd(email,bdMime)
// Load a file containing one email address per line.
distList := chilkat.NewStringTable()
success = distList.AppendFromFile(1000,"utf-8","qa_data/distList.txt")
if success == false {
fmt.Println(distList.LastErrorText())
mailman.DisposeMailMan()
email.DisposeEmail()
bdMime.DisposeBinData()
distList.DisposeStringTable()
return
}
sbRecipients := chilkat.NewStringBuilder()
i := 0
szDistList := distList.Count()
j := 0
for i < szDistList {
// Build a list of comma-separated recipients.
if j > 0 {
sbRecipients.Append(",")
}
sbRecipients.Append(*distList.StringAt(i))
i = i + 1
j = j + 1
// If we have 20 recipients, or we have the final recipient in the final chunk, then send.
if (j == 20) || (i == szDistList) {
success = mailman.SendMimeBd("sender@example.com",*sbRecipients.GetAsString(),bdMime)
if success != true {
fmt.Println(mailman.LastErrorText())
mailman.DisposeMailMan()
email.DisposeEmail()
bdMime.DisposeBinData()
distList.DisposeStringTable()
sbRecipients.DisposeStringBuilder()
return
}
j = 0
sbRecipients.Clear()
}
}
success = mailman.CloseSmtpConnection()
if success != true {
fmt.Println("Connection to SMTP server not closed cleanly.")
}
fmt.Println("Email sent to distirbution list.")
mailman.DisposeMailMan()
email.DisposeEmail()
bdMime.DisposeBinData()
distList.DisposeStringTable()
sbRecipients.DisposeStringBuilder()