亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SMTP 郵件:如何將數據表值綁定到 html 模板 C#

SMTP 郵件:如何將數據表值綁定到 html 模板 C#

C#
米琪卡哇伊 2022-06-18 17:23:12
我是 c# 和 WEB Api 的新手,我想在每次購買產品后發送郵件。郵件將包含與所購買產品相關的所有詳細信息。在這里,我的代碼在將字符串數據作為郵件發送時工作正常。我不知道如何將數據表值添加到 HTML 模板并將其作為郵件發送。HTML<!DOCTYPE html><html><head>    <title></title>    <meta charset="utf-8" /></head><body>    <h4 style="color:   #00CED1">Purchase Details<hr></h4>    <table style="width:100%;border: 1px solid black;">        <tr>            <th>Item(s)<hr></th>            <th>Details<hr></th>            <th>Amount(Tax.Inc)<hr></th>        </tr>        <tr>            <td align="center"><img src="https://dummyimage.com/80x80/000/fff" /></td>            <td>                <table style="width:100%;margin-left:15px">                    <tr>                        <td align="left">Product Name :</td>                        <td align="left" style="color:#32CD32;font-weight:bold;">Red chilly powder</td>                    </tr>                    <tr>                        <td align="left">Product UOM :</td>                        <td align="left" style="color:#696969;font-weight:bold;">PKT 500</td>                    </tr>                    <tr>                        <td align="left">Quantity :</td>                        <td align="left" style="color:#778899;font-weight:bold;">5</td>                    </tr>                    <tr>                        <td align="left">Unit Price :</td>                        <td align="left" style="color:#483D8B;font-weight:bold;">30 $                        <td>                    </tr>                </table>            </td>            <td align="center" style="font-size:20px;font-weight:bold;color:#1E90FF">150 $</td>        </tr>    </table>    <hr>    <table style="width:100%;">        <tr>            <td align="right" style="font-size:22px;font-weight:bold;">Total Amount :            <td align="right" style="color:#0000CD;font-size:22px;font-weight:bold;">150 $</td></td>        </tr>    </table>    <hr></body></html>API我在 SO 中進行了搜索,但我只能找到將字符串作為 SMTP 郵件發送。任何人都可以幫我解決這個問題。
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

如果您有一堆不同的模板,我建議您選擇像StringTemplate或RazorEngine這樣的高級解決方案,但如果這是您需要涵蓋的唯一情況,您可以做一些簡單的事情,將您的 HTML 模板分成兩部分 - 郵件正文和表格行,構建您的表格行集合并將其注入郵件正文。


郵件正文


<!DOCTYPE html>

<html>

<head>

    <title></title>

    <meta charset="utf-8" />

</head>

<body>

    <h4 style="color:   #00CED1">Purchase Details<hr></h4>


    <table style="width:100%;border: 1px solid black;">

        <tr>

            <th>Item(s)<hr></th>

            <th>Details<hr></th>

            <th>Amount(Tax.Inc)<hr></th>

        </tr>


        {0}


    </table>

    <hr>

    <table style="width:100%;">

        <tr>

            <td align="right" style="font-size:22px;font-weight:bold;">Total Amount :

            <td align="right" style="color:#0000CD;font-size:22px;font-weight:bold;">{1}</td></td>

        </tr>

    </table>

    <hr>


</body>

</html>

表行


<tr>

    <td align="center"><img src="https://dummyimage.com/80x80/000/fff" /></td>

    <td>

        <table style="width:100%;margin-left:15px">

            <tr>

                <td align="left">Product Name :</td>

                <td align="left" style="color:#32CD32;font-weight:bold;">{0}</td>

            </tr>

            <tr>

                <td align="left">Product UOM :</td>

                <td align="left" style="color:#696969;font-weight:bold;">{1}</td>

            </tr>

            <tr>

                <td align="left">Quantity :</td>

                <td align="left" style="color:#778899;font-weight:bold;">{2}</td>

            </tr>

            <tr>

                <td align="left">Unit Price :</td>

                <td align="left" style="color:#483D8B;font-weight:bold;">{3}<td>

            </tr>

        </table>

    </td>

    <td align="center" style="font-size:20px;font-weight:bold;color:#1E90FF">{4}</td>

</tr>

然后代碼


// Retrieve the templates and store them into mailBodyTemplate and tableRowTemplate

// For example,

var mailBodyTemplate = File.ReadAllText("mailBody.html");

var tableRowTemplate = File.ReadAllText("tableRow.html");


var tableRows = new StringBuilder();

var totalPrice = 0;

foreach (DataRow Row in Tables[0].Rows)

{

    totalPrice += Convert.ToInt32(Row["Price"]);

    tableRows.AppendFormat(tableRowTemplate, Row["Name"], Row["UOM"], Row["Quantity"], Row["UnitPrice"], Row["Price"]);

}

var mailBody = string.Format(mailBodyTemplate, tableRows.ToString(), totalPrice);

// Send your mail body


查看完整回答
反對 回復 2022-06-18
  • 1 回答
  • 0 關注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號