ASP.Net应用程序之外的MailDefinition

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

MailMessage message = new MailMessage("foo@foo.com", "bar@bar.com", "Test message", "Test message content"); message.IsBodyHtml = true; message.Body = "DaringFireball.net"; 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应用程序。

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

谢谢

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

然后创建Mailmessage as:MailMessage msgHtml = message.CreateMailMessage(recipients,replacementments,new System.Web.UI.Control());

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

“使用MailDefinition类简化创建由控件发送的预定义电子邮件。如果要不使用控件发送电子邮件,请参阅System.Net.Mail类。” ( 来源 )

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