Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MailDefinition Outside of ASP.Net Application

Tags:

c#

I'm looking to write a C# console app that will, in the process of running send out emails. I have the emails going out simply by doing something like:

     MailMessage message = new MailMessage("[email protected]", "[email protected]", "Test message", "Test message content");
     message.IsBodyHtml = true;
     message.Body = "<a href=\"http://www.daringfireball.net\">DaringFireball.net</a>";
     SmtpClient client = new SmtpClient("localhost"); // Your host here

     try
     {
        client.Send(message);
     }
     catch (Exception e)
     {
        Console.WriteLine("There was an error trying to send the message: " + e.ToString());
     }

I was trying to find a way to do this with MailDefinition because these emails might be longer, but in the process of doing that I ran into a little problem. The CreateMailMessage method requires a System.Web.UI.Control which I don't have because I'm not an ASP.Net Application.

Has anyone run into this problem? Or found a better way of doing this?

Thanks

like image 943
zacharyc Avatar asked Feb 15 '11 20:02

zacharyc


1 Answers

Ensure you've used correct .Net Framework 4 and not .Net Framework 4 client as the target framework. Add System.Web to the references of your project.

Then create the Mailmessage as: MailMessage msgHtml = message.CreateMailMessage(recipients, replacements, new System.Web.UI.Control());

like image 143
zafoxyfox Avatar answered Sep 29 '22 12:09

zafoxyfox