Je wilt graag e-mails versturen vanaf jouw website met ASP, op een goede en veilige manier? In classic ASP (of VBScript) gebruik je CDOSYS om e-mail te versturen vanaf een website gehost op Windows Server IIS, en met het CDO.Configuration object configureer je CDOSYS om dat via TLS en authenticated SMTP te doen. Mooi hè? :)
Dit artikel richt zich op het gebruik van CDOSYS, in combinatie met authenticated SMTP en TLS-versleuteling. Deze twee voorwaarden zijn verplicht bij Vevida om van smtp.vevida.com gebruik te kunnen maken voor het versturen van een e-mail vanaf jouw website. Veel andere hostingproviders hanteren diezelfde voorwaarden.
Standaard maakt CDOSYS gebruik van de in Windows ingebouwde “pick-up directory”, waar vanuit de IIS SMTP-service alle berichten verstuurt die daar worden geplaatst. Bij sommige hostingproviders moet je de configuratie van CDOSYS aanpassen om van een externe SMTP-server gebruik te maken. Bijvoorbeeld smtp.vevida.com.
Voor deze SMTP-server moet ook geconfigureerd zijn dat de verbinding met TLS versleuteld is. En er moet met een e-mailadres en wachtwoord op de SMTP-server worden ingelogd, dit heet SMTP-authenticatie. Dit draagt zorg voor een betere beveiliging van uw gegevens en een hogere zekerheid van de e-mailbezorging bij de ontvanger. Hiervoor is het CDO.Configuration object nodig.
Een voorbeeldfunctie in ASP/VBScript, waar alles in zit, is:
<%@ Language=VBScript %>
<%
Sub send_eMail()
Dim myMail, Fields, strFrom, strTo
strFrom = "e-mailadres verzender"
strTo = "e-mailadres ontvanger"
' http://msdn.microsoft.com/en-us/library/ms526318(v=exchg.10).aspx
' Its good practice to use the module constants defined in the
' type library for the names. The full names are used here to
' indicate that this is what is going on
'
Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort = 2
Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic = 1
Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
' Use SSL for the connection (False or True)
Const cdoSendTLS = "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
Set myMail = CreateObject("CDO.Message")
Set myMail.Configuration = CreateObject("CDO.Configuration")
Set Fields = myMail.Configuration.Fields
' SMTP-configuratie
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.vevida.com"
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPConnectionTimeout) = 10
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = "gebruikersnaam"
.Item(cdoSendPassword) = "wachtwoord"
.Item(cdoSendTLS) = true
.Update
End With
' Stel afzender, ontvanger, onderwerp en bericht in
myMail.From = strFrom
myMail.To = strTo
myMail.Subject = "Dit is het onderwerp van mijn bericht."
myMail.TextBody = "Dit is de tekst van mijn bericht."
' Verstuur de e-mail
myMail.Send
' Verwijder de objecten
Set Fields = nothing
Set myMail.Configuration = nothing
Set myMail = nothing
End Sub
%>
Code language: VBScript (vbscript)
Verander “gebruikersnaam” met het e-mailadres van de verzender en “wachtwoord” met het bijbehorende wachtwoord.
Dit is een ASP Sub en dient als zodanig aangeroepen te worden:
<%@ Language=VBScript %>
<% send_eMail() %>
Code language: VBScript (vbscript)
Door de regels Sub send_eMail()
en End Sub
te verwijderen is dit eenvoudig in een bestaand ASP-script of formulier te verpakken.
Doneer €5, 10 of 15 via Paypal. Dank je <3 ❤️