NKB67 - CDOSYS - een vb.net procedure
Klik hier om de broncode te downloaden
file: web.config
<configuration>
<appSettings>
<add key="backupsmtpserver" value="smtp.uwdomein.nl" />
<add key="providermailadres" value="beheer@uwdomein.nl" />
</appSettings>
<system.web>
</system.web>
</configuration>
file: smtpmail2.vb
Imports System.Web.Mail
Imports System.Text.RegularExpressions
Public Class smtpmail2
Inherits System.Web.UI.Page
Public Function SendMail(ByVal sSender As String, ByVal sRecipient As String, ByVal sSubject As String, _
ByVal sMessage As String) As Boolean
'------------------------------------------------------------------------------------------------------------------
' Mail versturen via de locale mailserver, of een alternatieve server als de locale server faalt.
'------------------------------------------------------------------------------------------------------------------
Dim objMessage As MailMessage
Try
objMessage = New MailMessage()
If InStr(sMessage, "</html>") > 0 Then objMessage.BodyFormat = 1
objMessage.From = sSender
objMessage.To = sRecipient
objMessage.Subject = sSubject
objMessage.Body = sMessage
Catch objExcept As Exception
Return False
End Try
Try
'// De smtp server instellen. Belangrijk - deze leeg maken en houden,
'// zodat de lokale smtp server wordt gebruikt (= meest efficient).
SmtpMail.SmtpServer = ""
'// De mail versturen.
SmtpMail.Send(objMessage)
Return True
Catch objExcept As Exception
Try
'// De mail kon niet worden verstuurd via de lokale smtp server.
'// Een backup mailserver gebruiken om de mail alsnog af te leveren.
SmtpMail.SmtpServer = ConfigurationSettings.AppSettings("backupsmtpserver")
SmtpMail.Send(objMessage)
Catch objExcept2 As Exception
Return False
End Try
If IsValidEMailadres(ConfigurationSettings.AppSettings("providermailadres")) Then
'// Nedcomp Beheer inlichten over het probleem met de lokale smtp-server,
'// zodat zij maatregelen kunnen nemen.
sMessage = "Er trad een fout op bij het gebruik van de lokale smtp-server van " _
& Request.ServerVariables("SERVER_NAME") & vbCrLf & vbCrLf _
& "Exception: " & objExcept.Message
objMessage.Body = sMessage
objMessage.To = ConfigurationSettings.AppSettings("providermailadres")
SmtpMail.Send(objMessage)
End If
End Try
Return True
End Function
Private Function IsValidEMailadres(ByVal sEmailadres As String) As Boolean
'------------------------------------------------------------------------------------------------------------------
' Controleren of een e-mailadres een geldige syntaxis heeft.
'------------------------------------------------------------------------------------------------------------------
Try
If sEmailadres & "" = "" Then Return False
Dim objRegex As New Regex("[\w-]+@([\w-]+\.)+[\w-]+")
IsValidEMailadres = objRegex.IsMatch(sEmailadres)
objRegex = Nothing
Catch objExcept As Exception
Return False
End Try
End Function
End Class
NKB67 - Nedcomp Hosting, 24-3-2003
|