16 March 2009 Email, HowTo, SMTP, Tests Robert Muehsig

imageEmails mit .NET zu versenden ist recht einfach, wenn es allerdings darum geht, den generierten Emailtext zu testen, dann wird es manchmal etwas schwierig.
Vor allem wenn das Entwicklungssystem keinen Zugriff auf den richtigen Email-Server hat, geht es meist nur auf "gut Glück".
Es gibt allerdings einen einfachen Web.Config Eintrag der es erheblich vereinfacht - die PickupDirectoryLocation.

Democode

Der Code zum verschicken einer Mail (in einer ASP.NET MVC ActionMethod) :

        public ActionResult SendMail()
        {
            SmtpClient smtpClient = new SmtpClient();
            MailMessage mailMessage = new MailMessage("[email protected]", "[email protected]");
            mailMessage.Subject = "Test-Subject";
            mailMessage.Body = "Test-Body";
            smtpClient.Send(mailMessage);

            return View("Index");
        }

In der web.config folgende Einstellung:
Produktivsystem

  <system.net>
    <mailSettings>
      <smtp>
        <network host="mail.example.com"/>
      </smtp>
    </mailSettings>
  </system.net>

Entwicklungssystem

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="c:\temp\maildrop\"/>
      </smtp>
    </mailSettings>
  </system.net>

Die "PickupDirectoryLocation" nimmt allerdings nur einen absoluten Pfad entgegen. Wenn man nun den Code aufruft, dann werden die Emails in den angegebenen Verzeichnis abgelegt:

image

X-Sender: [email protected]
X-Receiver: [email protected]
MIME-Version: 1.0
From: [email protected]
To: [email protected]
Date: 16 Mar 2009 20:52:55 +0100
Subject: Test-Subject
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Test-Body

Damit lässt sich die Emailgenerierung auch ohne SMTP Server testen.
Den Tipp habe ich von dieser Seite - da ich ihn ständig wieder Suche, habe ich ihn jetzt ebenfalls auch gebloggt ;)

Wichtig ist noch, dass ASP.NET Schreibrechte auf dem Verzeichnis hat.

[Download Democode]


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de