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].