Using Razor with Visual Basic: Listing 5.

Sending an e-mail in Visual Basic with MvcMailer.

The controller method to generate an e-mail with MvcMailer in Visual Basic:
' POST: /Customer/Email
  <HttpPost()> _
  Function Email(ByVal id As String, 
    ByVal collection As FormCollection) As ActionResult
    Imports Mvc.Mailer
    Dim customer = New Customers
    Try
      Dim emailForm = New CustomerEmail() 'From Models folder
      TryUpdateModel(emailForm)
      customer = dc.Customers.Where(Function(x) x.CustomerID = 
        emailForm.CustomerID).Single

      Dim message = New Net.Mail.MailMessage(
        from:=New Net.Mail.MailAddress("[email protected]"),
        [to]:=New Net.Mail.MailAddress(emailForm.ToAddress))
      message.Subject = "Welcome to our web site!"
      message.CC.Add(emailForm.CcAddress)
      message.Bcc.Add(emailForm.BccAddress)

      Dim mailer = New MailerBase()
      Session("emailInfo") = emailForm
      Session("customer") = customer

      mailer.PopulateBody(message, viewName:="CustomerEmail")
      Session.RemoveAll()
      message.Send()

      Return RedirectToAction("Index")
    Catch ex As Exception
      ViewBag.ErrorMessage = ex.Message
      Return View(customer)
    End Try
  End Function

The Razor view engine that populates the body of the HTML e-mail using Visual Basic:

@Code
  Layout = Url.Content("~/Views/Shared/_EmailLayout.vbhtml")
  Dim emailInfo = CType(Session("emailInfo"), MVC3RazorVB.CustomerEmail)
  Dim customer = CType(Session("customer"), MVC3RazorVB.Customers)
End Code

@emailInfo.MessageText
<hr />
<br />
Our records indicate the following contact information. Please contact us with any correctons at <a href="mailto:[email protected]">[email protected]</a>.<br />
<br /><br />
<table>
  <tr><td>ContactName:</td><td>@customer.ContactName</td></tr>
  <tr><td>ContactTitle:</td><td>@customer.ContactTitle</td></tr>
    ...etc...
</table>
<br />

About the Author

Joe Kunk is a Microsoft MVP in Visual Basic, three-time president of the Greater Lansing User Group for .NET, and developer for Dart Container Corporation of Mason, Michigan. He's been developing software for over 30 years and has worked in the education, government, financial and manufacturing industries. Kunk's co-authored the book "Professional DevExpress ASP.NET Controls" (Wrox Programmer to Programmer, 2009). He can be reached via email at [email protected].

comments powered by Disqus

Featured

  • VS Code 1.127 Further Integrates Advanced Browser-AI Tech

    Microsoft's July 1 Visual Studio Code update continues a recent push to make the editor's integrated browser a more capable development surface -- and a more useful tool for AI agents.

  • Support Vector Regression with SGD Training Using C#

    Support vector regression can predict numeric values effectively, and this article shows how to implement and train a kernel SVR model in C# using stochastic sub-gradient descent.

  • New GitHub Switch Limits Repo Issue Creation to Collaborators Only

    After publicly touting pull request limits as a way to cut maintainer noise, GitHub is taking the same idea further with a new setting that lets repository admins restrict issue creation to collaborators only.

  • Uno Platform Helps Ship First Stable SkiaSharp 4.0 Release for 2D .NET Graphics

    SkiaSharp 4.148.0 is the first stable v4 release, bringing a newer Skia engine, API cleanup, performance work and a Microsoft-Uno co-maintenance model.

Subscribe on YouTube