使用下面的简单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。我怎么能让它发送模板?
答案 0 :(得分: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);
答案 1 :(得分:0)
您的问题实际上是关于从网址读取字符串,其中一个可能的答案是:
var url = "http://www.yoursite.com/email.htm";
var body = "";
using(var client = new WebClient()) {
body = client.DownloadString(url);
}
答案 2 :(得分:0)
如果文件是本地文件,而不是使用下载,您只需使用System.IO读取它,例如
string html;
System.IO.StreamReader fstream;
fstream = File.OpenText("yourpathgoeshere.html");
html = fstream.ReadToEnd();
fstream.Close();
在此之后,只需按照其他帖子中的建议分配其余属性。如果您所追踪的html文件存储在本地,这可能更好,或者如果它经常被访问,最好将它存储在本地并使用此方法。
请注意,您需要导入System.IO才能正常工作。