我正在寻找一个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应用程序。
有没有人遇到这个问题?或者找到了更好的方法吗?
由于
答案 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中运行即可使用该程序集中的类。