Programmeren in ASP.NET/Mail vanuit ASP.NET

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Programmeren in ASP.NET

  1. Wat is ASP.NET?
  2. Wat heb ik nodig voor ASP.NET?
  3. Een ASP.NET-server installeren
  4. Je eerste ASP.NET-pagina
  5. HTML-controls
  6. Foutzoeken
  7. Web-server-controls
  8. Webformulieren
  9. Veelgebruikte objecten
  10. Validering
  11. Master-pagina's
  12. Navigatie
  13. Gegevenstoegang
  14. Werken met databanken
  15. Databankgegevens wijzigen
  16. Werken met datacontrols
  17. GridView
  18. FormView en DetailsView
  19. User-controls
  20. Custom controls
  21. AJAX
  22. Viewstate
  23. Configuratiebestanden
  24. Webservices
  25. Beveiliging
  26. Personalisatie en profielen
  27. Thema's en skins
  28. WebParts
  29. Globalisering
  30. Caching
  31. Mail vanuit ASP.NET
  32. Reguliere expressies
  33. Server-side afbeeldingen
  34. Mobiele toepassingen
  35. Meer informatie
  36. Appendix: foutmeldingen

In dit voorbeeld zie je hoe je vanuit ASP.NET mail kan versturen. Je gebruikt hiervoor het MailMessage-object en het SmtpMail-object.

Maak eerst enkele instellingen in web.config:

     <system.web>
     ...
     </system.web>
     <system.net>
	<mailSettings>
	    <smtp from="mijnnaam@mijndomein.com">
		<network host="127.0.0.1" password="" userName=""/>
	    </smtp>
	</mailSettings>
     </system.net>

Zorg ervoor dat het e-mailadres en de naam van de SMTP-host juist zijn. 127.0.0.1 stemt overeen met localhost (dus de mailserver is dan dezelfde als de webserver), maar dit kan ook een ander IP-adres of domeinnaam (bijvoorbeeld mail.mijndomein.com) zijn.

Bij veel providers kan je alleen mail versturen met een gebruikersnaam en een wachtwoord (authenticated SMTP). Dan voeg je deze toe in de configuratie van de SMTP-host.

Maak nu een pagina:

mail.aspx

<%@ Page Language="VB" %>
<%@ import Namespace="System.Net.Mail" %>

<script runat="server">

    Sub btn_Click(sender as Object, e as System.EventArgs)
        Try
            Dim mail As New MailMessage
            mail.To.Add(tbAan.Value)  ' dit kan bijvoorbeeld uit een databank komen
            mail.Subject = "Boodschap via ASP.NET"
            mail.Body = "Boodschap - zet hier de ganse boodschap"
            mail.IsBodyHtml = True
            Dim client As New SmtpClient() 
            client.Send(mail)
            lblInfo.Text = "Het bericht is verstuurd"
        Catch ex As Exception
            lblInfo.Text="Er ging iets mis.<br>"
            lblInfo.Text= lblInfo.Text & "Dit was de foutmelding:<br>" & ex.Message
            ' toon ook de InnerException
            While Not (ex.InnerException Is Nothing)
               ex = ex.InnerException
               lblInfo.Text= lblInfo.Text & "<br>Meer info: " & ex.Message
            End While
        End Try
    End Sub

</script>
<html>
<head>
   <title>mail</title>
 </head>
<body>
    <h1 align="center">Mail via ASP.NET</h1>
    <form runat="server">
        Aan:<input id="tbAan" type="text" size="30" runat="server"/>
        <br />
        <input id="btnSubmit" type="submit" value="Mail via ASP.NET" name="b1" 
              runat="server" onserverclick="btn_Click" />
        <br/>
        <asp:Label id="lblInfo" runat="server" EnableViewState="False" />
    </form>
</body>
</html>

Opmerkingen

  • Omdat de foutmelding in 99% van de gevallen "Could Not Access CDO.Message" of "Failure sending mail" is, tonen we hier ook de InnerException-boodschappen, die meestal meer informatie geven.
  • Om mail te kunnen sturen moet je een SMTP-server gebruiken waarop je de nodige toegangsrechten hebt. De meeste providers laten dit niet toe, omdat dit gemakkelijk kan misbruikt worden om te spammen.
  • Je kan op je eigen pc een SMTP-server installeren als onderdeel van de Internet Information Services. Je moet deze zo instellen dat tenminste ip-adres 127.0.0.1 (de eigen computer) relay access (het recht om mails door te sturen) heeft.
  • Om mail te sturen naar meerdere adressen tegelijk (een zogenaamde mailinglijst), voeg je meerdere regels met Mail.To.Add toe.
  • Je kan ook mail versturen met bijlagen (attachments).
  • Meer informatie over ASP.NET mail: http://www.systemnetmail.com
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.