Je kunt vanuit jouw ASP.NET-webapplicatie een e-mail versturen, bijvoorbeeld d.m.v een contactformulier. Dit kan alleen als je een met TLS beveiligde SMTP-verbinding gebruikt, en in dit artikel laten we je zien hoe je dit doet.

Om vanuit ASP.NET een e-mail te versturen via onze mailservers moet je de SmtpClient.EnableSsl property instellen als true. Ook moet je een nieuwe instantie van de NetworkCredential class opgeven als SmtpClient.Credentials property in je .NET-webapplicatie.

Zie het volgende voorbeeld in C#:

C# e-mailscript

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Net.Mail" %>

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
    SendMail();
}

public static void SendMail()
{
    string to = "info@domein.nl";
    string from = "info@domein.nl";
    MailMessage Netmail = new MailMessage(from, to);
    Netmail.Subject = "Testbericht via TLS-beveiligde verbinding";
    Netmail.Body = @"Hallo wereld!";
    SmtpClient client = new SmtpClient("smtp.vevida.com");

    client.Credentials = new NetworkCredential("info@domein.nl", "wachtwoord");
    client.EnableSsl = true;
    client.Send(message);
}
</script>

In dit voorbeeld moet je jouw e-mailaccount inloggegevens opgeven in de client.Credentials regel. Vervang “info@domein.nl” door jouw e-mailaccount en geef het bijbehorende “wachtwoord” op.

Belangrijke, aangepaste, headers toevoegen

Als je het bovenstaande voorbeeld gebruikt, dan zul je waarschijnlijk merken dat System.Net.Mail een belangrijke header vergeet: het Message-ID. Je kunt deze Message-ID header, en anderen, eenvoudig toevoegen in bovenstaande C#-code.

Voeg de volgende regel toe boven de regel met Netmail.Subject = :


Netmail.Headers.Add( "Message-Id", "<" + Guid.NewGuid().ToString() + "@example.com>" );

Als tweede kun je ook zo ook eenvoudig het unieke website-id als header meesturen, oftewel het instance-id:


NameValueCollection NVCSrvElements = Request.ServerVariables;
string[] InstanceID = NVCSrvElements.GetValues("INSTANCE_ID");
NetMail.Headers.Add("X-Instance-ID", Convert.ToString(InstanceID[0]));

Hiermee kun je bijhouden welke website een mail gestuurd heeft.

E-mail versturen via andere scripttalen (PHP, ASP)

Zie ook onze andere artikelen in deze reeks:

Je kunt deze deze informatie en voorbeelden gebruiken om veilig e-mail te versturen vanaf jouw website.

Wat vond je van dit antwoord?

Bedankt voor je feedback!

Er is een fout opgetreden. Probeer het later opnieuw.