5

StringBuilder クラスの AppendFormat メソッドに問題があります。テーブルを作成し、文字列ビルダオブジェクトにデータを追加してメールとして送信していますが、送信されたメールを見ると、テーブルのように見えず、ヘッダーと対応するコンテンツが配置されていません。通常、Microsoft Wordのテーブルにあるように、テーブルを行で区切る必要があります。どうすれば達成できますか..次のコードを使用しています: Body is a StringBuilder Object

if (  dic1 != null )
{
     //Body.AppendFormat("Client: " + cl + " Success. " + dic1.Count + " :");
     Body.AppendFormat("<br/><table>");
     Body.AppendFormat("<h1><tr><td>#</td><td>Files Name</td></tr></h1>");
     int count = 1;
      foreach ((KeyValuePair<string, string> pair in  dic1)
               {
                    if (!String.IsNullOrEmpty(pair.Key))
                     {

                      Body.AppendFormat("<tr><td>"+count.ToString()+"</td><td>" + pair.Key + "</td><td> " + pair.Value + "</td></tr>");
                        count++;
                        //Body.Append( );
                    }
                }

                Body.AppendFormat("</table>");

以下は、受信トレイに表示される出力です。

 # File Name Error 
 1 txt1.txt Loading File 'txt1.txt' failed: The specified File already exists in the system 
 2 txt2.txt Loading File 'txt2.txt' failed: The specified File already exists in the system 
 3 txt3.txt Loading File 'txt3.txt' failed: The specified File already exists in the system 
4

3 に答える 3

4

この例を使用して、それがどうあるべきかを理解していただければ幸いです。そうでない場合は、お知らせください。が手伝う。

System.Text.StringBuilder sb = new System.Text.StringBuilder();

sb.Append("<table>");
sb.AppendFormat("<tr><td>Request Name:</td><td>{0}</td></tr>", txtBugName.Text.Trim());
sb.AppendFormat("<tr><td>Category:</td><td>{0}</td></tr>", ddlModule.SelectedValue);
sb.AppendFormat("<tr><td>Sub-Category:</td><td>{0}</td></tr>", ddlPage.SelectedValue);
sb.AppendFormat("<tr><td>Description:</td><td>{0}</td></tr>", txtComments.Text.Trim());
sb.AppendFormat("<tr><td>Email is:</td><td>{0}</td></tr>", txtemail.Text.Trim());
sb.Append("<table>");

次に、既に HTML を使用していたので、IsBodyHtml プロパティが true であると想定しています。

于 2012-09-10T11:03:31.900 に答える
0

このようなことをしてください

    String to, subject, message;
    bool isHtml;
    isHtml = true;
    StringBuilder sbEmail = new StringBuilder();

    to = "abc@abc.com";
   // string url = "xxxxx";

    //  string refurl = Request.UrlReferrer.ToString();
    subject = "Some subject";

    // Keep Option for Otehr Language also by defining predefined 
    // Hidden Labels for Message in L1, L2, L3, L4, L5 --
    // Also add dir tag to the Table
    sbEmail.Append("<table><tr><td style='font-family: Arial; font-size: 10pt;'>");
    sbEmail.Append("Hello,");
    sbEmail.Append("<br><br>");
    sbEmail.Append("");
    sbEmail.Append("Following Comments has been posted");
    sbEmail.Append("<br><br>");
    sbEmail.Append(strComment);
    sbEmail.Append("<br><br>");
    sbEmail.Append("Article Title :");
    sbEmail.Append("<br>");
    sbEmail.Append(strArticleTitle);
    sbEmail.Append("<br><br>");
    sbEmail.Append("Name : " + strName);
    sbEmail.Append("<br>");
    sbEmail.Append("Country : " + strCountry);
    sbEmail.Append("<br><br>");
    sbEmail.Append("Please logon to admin section of website to activate this comments");
    sbEmail.Append("<br>");
    sbEmail.Append("http://xxxxx");
    sbEmail.Append("</td></tr></table>");
    message = sbEmail.ToString();
于 2012-09-10T11:03:15.197 に答える
0

目的の境界線を取得するには、テーブルとタグの両方にインライン スタイルを組み込む必要があります。 <table cellpadding='5' cellspacing='2' style='border:1px solid black;'> <td style='border: 1px solid black;'> これにより、期待どおりのスタイルが得られるはずです。

于 2020-08-28T17:42:27.223 に答える