Hey everyone,
Just a really basic model that can be used to send emails on GoDaddy in MVC4.
The model:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
using System.Net.Mail;
using System.ComponentModel.DataAnnotations;
namespace LL.Models
{
public class Email
{
[Key]
public int EmailId { get; set; }
public string From { get; set; }
public string To { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public DateTime Sent { get; set; }
public string Status { get; set; }
public string Log { get; set; }
public void SendEmail()
{
MailMessage mail = new MailMessage();
mail.To.Add(this.To);
mail.From = new MailAddress(this.From);
mail.Subject = this.Subject;
mail.Body = Body;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.Normal;
SmtpClient smtp = new SmtpClient();
smtp.Host = "relay-hosting.secureserver.net";
smtp.UseDefaultCredentials = true;
smtp.Port = 25;
smtp.EnableSsl = false;
try
{
smtp.Send(mail);
this.Status = Fields.Status.Success;
}
catch(Exception e)
{
this.Log = e.Message;
}
this.Sent = DateTime.Now;
}
[NotMapped]
public class Fields
{
public class From
{
public const String NoReply = "noreply@yoursite.com.au";
public const String Support = "support@yoursite.com.au";
}
public class Status
{
public const String Success = "Success";
public const String Error = "Error";
}
}
}
}
Using it in a controller:
using LearnerLessons.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace LL.Controllers
{
public class TestController : Controller
{
private LLDBContext db = new LLDBContext();
public String TestEmail(String content)
{
Email email = new Email() { To = "lls@live.com.au", From = Email.Fields.From.NoReply, Body = content, Subject = "Test" };
email.SendEmail();
db.Emails.Add(email);
db.SaveChanges();
return email.ToString();
}
}
}
Update:
For a quick tutorial on how to use Razor views as email templates, check out the following post: http://www.whatibroke.com/?p=983