在.cs c#.net中包含HTML页面

时间:2012-07-11 18:15:43

标签: c# html email

因此,我正在尝试清理后端并完成我的电子邮件。有没有办法让一个包含到一个HTML文件,而不是直接将html放在这里?或者更好的方法呢?

public void SendWelcomeEmail(int uid)
{
SqlCommand command = EmailCommandList.GetRegisteredEmail;
BciDatabase db = new BciDatabase("db");
command.Parameters["@User_Id"].Value = uid;
using (SqlDataReader dr = db.ExecuteReader(command))
{
Member member = new Member();
if (dr != null && !dr.IsClosed && dr.Read())
{
while (dr.Read())
 {
string emailAddress = (string)dr["Email"];
MailMessage mail = new MailMessage();
mail.Subject = "Welcome to the site";
 mail.Body = "<html><head></head><body><p>Hello, welcome to the site!</body></html>";
 mail.IsBodyHtml = true;
mail.From = new MailAddress("noreply@email.com");
mail.To.Add(new MailAddress(emailAddress));
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("myemail", "mypass"),
EnableSsl = true
};
client.Send(mail);
}
}
}
}

1 个答案:

答案 0 :(得分:2)

如果您正在使用ASP.Net MVC,有一些非常好的解决方案可以将您的电子邮件作为视图编写,这样可以轻松注入模型的元素(例如人名):

如果您不使用MVC,您当然可以从文件系统中读取HTML文件,或者从数据库中读取HTML(如果您有多封电子邮件,则更容易维护)。