簡體   English   中英

Ektron表單-生成純文本電子郵件

[英]Ektron Forms - Generate Plaintext Email

在Ektron中,我有一個表單,該表單在提交時會生成HTML電子郵件,並將其發送到郵箱(foo@bar.com)。 應用程序(MailReader)檢查該郵箱,讀取郵件,剝離所有標記,並保存生成的郵件以備后用。 這是一個問題,因為HTML電子郵件中的所有文本最終都被混在一起,並且使用MailReader應用程序的人完全無法閱讀。

例如,以下HTML:

<h1>Header1</h1>
<div>
   <h2>Header2</h2>
   <p>Some text in a paragraph.</p>
</div>

變為:

Header1Header2Some text in a paragraph.

我無法以任何方式更改MailReader,它將始終剝離任何標記,因此我的解決方案是讓Ektron生成僅包含此表單的HTML電子郵件。 我知道電子郵件是使用XSLT轉換和文件/Workarea/controls/forms/DefaultFormEmailBody.xslt生成的。

我對解決方案的嘗試包括將一個隱藏的輸入添加到名稱為“ __nohtml”的表單中。 然后,XSLT將執行以下操作:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:choose>
        <xsl:when test="/field[starts-with(@name, '__nohtml')]">
            <xsl:output method="text" />
        </xsl:when>
        <xsl:otherwise>
            <xsl:output method="html" />
        </xsl:otherwise>
    </xsl:choose>
    <xsl:template match="/">
        <xsl:choose>
            <xsl:when test="/field[starts-with(@name, '__nohtml')]">

                text output

            </xsl:when>
            <xsl:otherwise>

                html output

            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>

但是當我使用它時它從不發送電子郵件。 我嘗試僅在自己的計算機上使用此模板進行渲染,但出現錯誤。 而且我還注意到w3文檔xsl:output元素僅允許作為頂級元素。 這可能解釋了為什么我不能將其放在元素中。

我也嘗試過完全忽略該元素,無論如何似乎默認為HTML。

我嘗試在本地Ektron代碼中搜索轉換發生的位置,因此我可以告訴Ektron在標准情況下使用默認的XSLT,或者如果存在__nohtml則使用其他XSLT,但是我不知道該代碼是否可訪問。

如果有人可以幫助我根據某個字段是否存在而允許使用HTML或純文本的模板,我將不勝感激。 如果不是這樣,那么如果有人可以將我指向Ektron代碼中的XSLT轉換點(甚至可以訪問),那將同樣出色。

我建議使用一種表單策略來生成您構建的電子郵件版本。 應該有一個公共重寫void OnAfterSubmit(FormData formData,FormSubmittedData SubmittedFormData,字符串formXml,CmsEventArgs eventArgs),該屬性將允許您創建拉出提交的表單數據(在原始對象中,或者我認為它也返回xml)。在那里,您可以解析它並保存html文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM