Forum Discussion
1 Reply
Sort By
- tsandiContributor
The utility Send email uses a starndard smtp client connection.
I creted the Sub below starting from the original function but adding the ability to specify a bcc list as well.
Public Sub SendMailWithBcc(ByVal si As SessionInfo, ByVal emailConnectionName As String, ByVal toEmailAddresses As List(Of String), ByVal bccEmailAddresses As List(Of String), ByVal subject As String, ByVal body As String, ByVal isBodyHtml As Boolean, ByVal attachmentFilePaths As List(Of String)) Try Dim nameValueFormatBuilder As NameValueFormatBuilder = New NameValueFormatBuilder() Dim databaseServerConnection As DatabaseServerConnection = AppServerConfig.GetDatabaseServerConnection(si, emailConnectionName) If databaseServerConnection IsNot Nothing Then nameValueFormatBuilder.ApplyFormatString(databaseServerConnection.ConnectionString) End If Dim value As String = nameValueFormatBuilder.GetValue("SmtpHost") Dim valueAsInt As Integer = nameValueFormatBuilder.GetValueAsInt("SmtpPort", 587, allowNegativeNumbers:=True) Dim valueAsBool As Boolean = nameValueFormatBuilder.GetValueAsBool("EnableSSL", defaultValue:=False) Dim value2 As String = nameValueFormatBuilder.GetValue("SmtpSourceMailAccount") Dim value3 As String = nameValueFormatBuilder.GetValue("SmtpSourceMailAccountPassword") Dim valueWasFound As Boolean Dim address As String = nameValueFormatBuilder.GetValue("FromAddress", valueWasFound) If Not valueWasFound Then address = value2 End If Using smtpClient As SmtpClient = New SmtpClient() smtpClient.Host = value smtpClient.Port = valueAsInt smtpClient.EnableSsl = valueAsBool smtpClient.Credentials = New NetworkCredential(value2, value3) Using mailMessage As MailMessage = New MailMessage() mailMessage.From = New MailAddress(address) If toEmailAddresses IsNot Nothing Then For Each toEmailAddress As String In toEmailAddresses If Not String.IsNullOrEmpty(toEmailAddress) Then mailMessage.[To].Add(toEmailAddress) End If Next End If If bccEmailAddresses IsNot Nothing Then For Each bccEmailAddress As String In bccEmailAddresses If Not String.IsNullOrEmpty(bccEmailAddress) Then mailMessage.Bcc.Add(bccEmailAddress) End If Next End If mailMessage.Subject = subject mailMessage.Body = body mailMessage.IsBodyHtml = isBodyHtml If attachmentFilePaths IsNot Nothing Then For Each attachmentFilePath As String In attachmentFilePaths If Not String.IsNullOrEmpty(attachmentFilePath) Then Dim item As System.Net.Mail.Attachment = New System.Net.Mail.Attachment(attachmentFilePath) mailMessage.Attachments.Add(item) End If Next End If smtpClient.Send(mailMessage) End Using End Using Catch e As Exception Throw New XFException(si, e) End Try End Sub
The usage is the same as before, but because it is a custom sub you can simply add it to your business rule and call it directly:
SendMailWithBcc(si, "OneStreamEmail", New List(Of String) From {"toname@gmail.com"}, New List(Of String) From {"toname@hotmail.com"}, "TestBcc", "TestBody", False, Nothing)
Remember to add those two additional imports in the business rule:
Imports System.Net.Mail Imports System.Net
Related Content
- 2 years ago
- 9 months ago
- 9 months ago
- 3 years ago