ASP.Net应用程序之外的MailDefinition

时间:2011-02-15 20:13:40

标签: c#

我正在寻找一个C#控制台应用程序,在运行发送电子邮件的过程中。我只是通过做类似的事情来发送电子邮件:

     MailMessage message = new MailMessage("foo@foo.com", "bar@bar.com", "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());
     }

我试图通过MailDefinition找到一种方法,因为这些电子邮件可能会更长,但在这样做的过程中我遇到了一个小问题。 CreateMailMessage方法需要一个我没有的System.Web.UI.Control,因为我不是ASP.Net应用程序。

有没有人遇到这个问题?或者找到了更好的方法吗?

由于

2 个答案:

答案 0 :(得分:1)

确保您使用了正确的.Net Framework 4而不是.Net Framework 4客户端作为目标框架。 将System.Web添加到项目的引用中。

然后将Mailmessage创建为: MailMessage msgHtml = message.CreateMailMessage(收件人,替换,新的System.Web.UI.Control());

答案 1 :(得分:0)

我不熟悉MailDefinition以任何方式优越。来自MSDN:

  

“使用MailDefinition类   简化创建预定义的电子邮件   要由控件发送的消息。如果   你想发送不使用电子邮件的电子邮件   控制,请参阅System.Net.Mail   class。“(source here

但是假设您有充分的理由选择MailDefinition到常规MailMessage ,然后将System.Web.dll的引用添加到项目。您不必在IIS中运行即可使用该程序集中的类。