0

そのため、バックエンドをクリーンアップしてメールをきれいにしようとしています。ここに直接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);
}
}
}
}
4

1 に答える 1

2

ASP.Net MVC を使用している場合、メールをビューとして記述するための非常に優れたソリューションがいくつかあります。これにより、モデルの要素 (人の名前など) を簡単に挿入できます。

MVC を使用していない場合は、ファイル システムから HTML ファイルを読み取ることも、データベースから HTML を読み取ることもできます (電子メールが数件以上ある場合は、保守がはるかに簡単です)。

于 2012-07-11T18:20:07.710 に答える