0

使用下面的简单 SMTP C# 代码发送电子邮件,我如何发送电子邮件模板?

    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add(toEmailAddress);
    message.Subject = "subject";
    message.From = new System.Net.Mail.MailAddress(from);
    message.Body = "http://www.yoursite.com/email.htm";
    message.IsBodyHtml = true;
    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("server");
    smtp.Send(message);

目前,正如预期的那样,收到的电子邮件仅包含模板的 URL。我怎样才能让它发送模板?

4

3 回答 3

2
System.Net.WebClient client = new System.Net.WebClient();
string html = client.DownloadString("http://www.yoursite.com/email.htm");

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add(toEmailAddress);
message.Subject = "subject";
message.From = new System.Net.Mail.MailAddress(from);
message.Body = html;
message.IsBodyHtml = true;
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("server");
smtp.Send(message);
于 2013-04-16T11:11:03.900 回答
0

您的问题实际上是关于从 url 读取字符串,可能的答案之一是:

var url = "http://www.yoursite.com/email.htm";
var body = "";

using(var client = new WebClient()) {
   body = client.DownloadString(url);
}
于 2013-04-16T11:11:35.623 回答
0

如果文件是本地文件,而不是使用下载,您可以简单地使用 System.IO 读取它,例如

    string html;
    System.IO.StreamReader fstream;
    fstream = File.OpenText("yourpathgoeshere.html");
    html = fstream.ReadToEnd();
    fstream.Close();

在此之后,只需按照其他帖子中的建议分配其余属性。如果你要的html文件存储在本地,这可能会更好,或者如果它会被频繁访问,那么将它存储在本地并使用这种方法可能会更好。

请注意,您需要导入 System.IO 才能正常工作。

于 2013-06-07T15:11:59.133 回答