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から文字列を読み取ることに関するものであり、考えられる答えの1つは次のとおりです。

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 に答える