日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

使用XSLT制作HTML邮件模板并发送

發布時間:2025/4/5 HTML 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用XSLT制作HTML邮件模板并发送 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前有寫過能發送郵件的小工具,基本做法就是先在代碼中寫死一封HTML郵件的格式,然后用適當的方法取得外部的幾個值填到預設的參數里,最后把合體后的string類型郵件發出去。簡單的郵件還好,當內容稍微多一點,比如輸出數據庫的一個表,又或者郵件格式經常要變動的,就感覺很麻煩很受拘束。

后來看到了別人用XSLT做的一個郵件模板,很受啟發。自己也嘗試了一下,就有了這篇文章。

下面這個方法是從數據庫里搜索符合條件的數據(列出由指定用戶管理并且已經超過有效期限的文檔,以XML形式導出),然后使用指定的xslt文件格式化取得的XML格式數據。

?

??????? /// <summary>

??????? /// 生成件內容

??????? /// </summary>

??????? /// <param name="date">除日期</param>

??????? /// <param name="account">管理者ID</param>

??????? private string GetSendMailBoby(DateTime date, string account)

??????? {

??????????? using (conn = new SqlConnection(

?????????????????????? ConfigurationManager.ConnectionStrings["mainDB"].ConnectionString))

??????????? {

??????????????? conn.Open();

??????????????? string bodyString = string.Empty;

??????????????? string commString = string.Empty;

??????????????? commString += "SELECT item_name,item_url,parent_url FROM DocAddress ";

??????????????? commString += "WHERE manger_id=@account AND due_date<=@executedate AND ";

??????????????? commString += "send_flg = 0 FOR XML AUTO, ELEMENTS,ROOT('SendmailToUser')";

?

??????????????? SqlCommand command = new SqlCommand(commString, conn);

??????????????? command.Parameters.AddWithValue("@account", account);

??????????????? command.Parameters.AddWithValue("@executedate", date);

?

??????????????? using (XmlReader reader = command.ExecuteXmlReader())

??????????????? {

??????????????????? XslCompiledTransform transform = new System.Xml.Xsl.XslCompiledTransform();

?

??????????????????? transform.Load(

??????????????????????? Application.StartupPath + @""" + ConfigurationManager.AppSettings["Mail.Template"]

??????????????????????? );

??????????????????? XsltArgumentList argList = new XsltArgumentList();

?

??????????????????? argList.AddParam("deleteday", "", date.AddDays(14).ToLongDateString());

?

??????????????????? using (StringWriter writer = new StringWriter())

??????????????????? {

??????????????????????? transform.Transform(reader, argList, writer);

?

??????????????????????? bodyString = writer.ToString();

??????????????????? }

??????????????? }

??????????????? conn.Close();

??????????????? return bodyString;

??????????? }

??????? }

?

相應的XSLT文件。

<?xml version="1.0" encoding="utf-8" ?>

<xsl:stylesheet version="1.0"

???????????? xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

?<xsl:output method="html" />

?<xsl:param name="deleteday"/>?

?

?<xsl:template match="DocAddress">?

??? <tr>

????? <td width="250">

??????? <xsl:element name="A">

????????? <xsl:attribute name="href">

??????????? <xsl:value-of select="item_url"/>

????????? </xsl:attribute>

????????? <xsl:value-of select="item_name"/>

??????? </xsl:element>

????? </td>

????? <td>

??????? <xsl:element name="A">

????????? <xsl:attribute name="href">

??????????? <xsl:value-of select="parent_url"/>

????????? </xsl:attribute>

????????? 保存地址

??????? </xsl:element>

????? </td>

??? </tr>

?</xsl:template>

?

?<xsl:template match="/">

??? <html>

????? <head>

??????? <title>期文章除通知</title>

????? </head>

????? <body>

??????? 您所管理的下列件將在<xsl:value-of select="$deleteday"/>予以除。

??????? <br/><br/>

??????? <table bordercolor="#000000" border="1" cellspacing="0" >

????????? <tr>

??????????? <td width="250" style="font-weight: bold; background-color: silver">

????????????? <center>文件名</center>

??????????? </td>

??????????? <td style="font-weight: bold; background-color: silver">

????????????? <center>地址</center>

??????????? </td>

????????? </tr>

????????? <xsl:apply-templates select="/SendmailToUser/DocAddress" />

??????? </table>

??????? <br/>

????? </body>

??? </html>

?</xsl:template>

</xsl:stylesheet>

?

具體的xslt語法,參考下列網址

http://www.w3school.com.cn/xsl/index.asp

?

附上完整代碼。(相關數據庫表的建立參考壓縮包內[~TableCreate.txt]文件。此外,因為涉及到調用MOSS2007的服務器端設定,必須引用Microsoft.SharePoint.dll,請自行添加DLL或刪除相關代碼。)

/Files/Kenr/MailSender.rar

轉載于:https://www.cnblogs.com/Kenr/archive/2009/06/24/1510141.html

總結

以上是生活随笔為你收集整理的使用XSLT制作HTML邮件模板并发送的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。