<configSections>
<section name="smtp_3" type="System.Net.Configuration.SmtpSection"/>
</configSections>
<mailSettings>
<smtp_1 deliveryMethod="Network" from="mail1@temp.uri">
<network host="..." defaultCredentials="false"/>
</smtp_1>
</mailsettings
return (SmtpSection)ConfigurationManager.GetSection("mailSettings/smtp_1");
return (SmtpSection)ConfigurationManager.GetSection("mailSettings/smtp_2");
return (SmtpSection)ConfigurationManager.GetSection("mailSettings/smtp_3");
Public Shared Sub SendMailMessage(ByVal Sender As String, ByVal Recipient As String, ByVal BCC As String, ByVal CC As String, ByVal Subject As String, ByVal Body As String)
http://stackoverflow.com/questions/4363038/setting-multiple-smtp-settings-in-web-configYes, That solution is confusing to implement.
Imports System.Web
Imports System.Xml
Imports System.Net.Mail
Public Class EmailHelper
Public Shared Sub SendMailMessage(ByVal Sender As String, ByVal Recipient As String, ByVal BCC As String, ByVal CC As String, ByVal Subject As String, ByVal Body As String)
Dim mMailMessage As New MailMessage()
mMailMessage.From = New MailAddress(Sender)
mMailMessage.To.Add(New MailAddress(Recipient))
If Not String.IsNullOrEmpty(BCC) Then
mMailMessage.Bcc.Add(New MailAddress(BCC))
End If
If Not String.IsNullOrEmpty(CC) Then
mMailMessage.CC.Add(New MailAddress(CC))
End If
mMailMessage.Subject = Subject
mMailMessage.Body = Body
mMailMessage.IsBodyHtml = True
mMailMessage.Priority = MailPriority.Normal
Dim mSmtpClient As New SmtpClient()
mSmtpClient.Send(mMailMessage)
End Sub
End Class
Dim emailObj As New EmailHelper
emailObj.SendMailMessage("smtp1", "test1@test1.com", "test11@test1.com", "", "", "Subject 1", "MsgBody 1")
'emailObj.SendMailMessage("smtp2", "test2@test1.com", "test22@test1.com", "", "", "Subject 2", "MsgBody 2")
'emailObj.SendMailMessage("smtp3", "test3@test1.com", "test33@test1.com", "", "", "Subject 3", "MsgBody 3")
Below is the EmailHelper class as you need and I HAVE UPDATED ONE LINE IN THE CODE.
' EmailHelper.vb
' Updated by Rose :-
'
' To read the __SecureSmtpConfig.xml file, i used Server.MapPath("__SecureSmtpConfig.xml")
' but inside the class we need to do call the file by the below line of code
' System.Web.HttpContext.Current.Server.MapPath("__SecureSmtpConfig.xml")
'
Imports System.Xml
Imports System.Net.Mail
Public Class EmailHelper
#Region "Dynamic SMTP"
Public Sub SendMailMessage(ByVal _SMTPNAME As String, ByVal Sender As String, ByVal Recipient As String, ByVal BCC As String, ByVal CC As String, ByVal Subject As String, ByVal Body As String)
Dim message As New MailMessage(Sender, Recipient)
message.Subject = "Using the new SMTP client." & Subject
message.Body = "Using this new feature, you can send an e-mail message from an application very easily." & Environment.NewLine & Body
Dim SmtpDet As New _SMTP_Det
SmtpDet = GetSMTPDet(_SMTPNAME)
' host, port, and credentials.
Dim client As New SmtpClient()
client.Host = SmtpDet.HostName
client.Port = SmtpDet.Port
client.Credentials = New System.Net.NetworkCredential(SmtpDet.UserName, SmtpDet.Password)
Try
client.Send(message)
Catch ex As Exception
Dim exMsg = ex.Message
' Or
'Throw ex
End Try
End Sub
Public Class _SMTP_Det
Public HostName As String = ""
Public Port As String = ""
Public UserName As String = ""
Public Password As String = ""
End Class
Public Function GetSMTPDet(ByVal _SMTPNAME As String) As _SMTP_Det
Dim retSmtp As New _SMTP_Det
Dim xmlDoc As New XmlDocument
'xmlDoc.Load(Server.MapPath("__SecureSmtpConfig.xml")) ' I modified this line
xmlDoc.Load(System.Web.HttpContext.Current.Server.MapPath("__SecureSmtpConfig.xml"))
Dim root As XmlElement = xmlDoc.DocumentElement
Dim smtpName As String = ""
For Each elem As XmlElement In root.GetElementsByTagName("smtp")
smtpName = elem.GetAttribute("name")
If smtpName = _SMTPNAME Then
retSmtp.HostName = elem.GetElementsByTagName("host").Item(0).InnerText
retSmtp.Port = elem.GetElementsByTagName("port").Item(0).InnerText
retSmtp.UserName = elem.GetElementsByTagName("username").Item(0).InnerText
retSmtp.Password = elem.GetElementsByTagName("password").Item(0).InnerText
Exit For
End If
Next
Return retSmtp
End Function
#End Region
End Class
check the below link
http://stackoverflow.com/questions/4363038/setting-multiple-smtp-settings-in-web-config
Hope it may help you