0

我正在使用预先格式化的文本文件作为电子邮件模板。该文件在我想要的地方有换行符。我想使用此模板发送纯文本电子邮件,但是当我这样做时,我会丢失所有格式。换行符被剥离。

如何解析此文件并保留换行符?我不想使用<pre>标签,因为我想发送纯文本电子邮件。

我正在使用经典的 ASP ReadAll 方法将模板拉入字符串:

            Dim TextStream
        Set TextStream = FSO.OpenTextFile(Filepath, ForReading, False, TristateUseDefault)

        ' Read file in one hit
        Dim Contents
        GetTemplate = TextStream.ReadAll ' return file contents

我错过了什么?

4

3 回答 3

3

这就是我所做的......

我获取一个文本或 HTML 文件(我将显示文本,因为它更小,但适用的代码完全相同),并且我将众所周知的值放入我以后可以替换的文本文件中。

-- 开始文本文件

We've generated a new password for you at your request, you can use this new password with your username to log in to various sections of our site.

Username: ##UserName##
Temporary Password: ##Password##

To use this temporary password, please copy and paste it into the password box.

Please keep this email for your records.

-- 结束文本文件

然后创建一个键/值对列表的简单问题,其中包含要替换的文本以及替换它的值。将文件作为字符串加载到内存中,并循环通过键/值对替换文本值。

ListDictionary dictionary = new ListDictionary
                                            {
                                                {"##UserName##", user.BaseUser.UserName},
                                                {"##Password##", newPassword}
                                            };


            string fromResources = GetFromResources("forgotpasswordEmail.html");
            string textfromResources = GetFromResources("forgotpasswordEmail.txt");
            foreach (DictionaryEntry entry in dictionary)
            {
                fromResources = fromResources.Replace(entry.Key.ToString(), entry.Value.ToString());
                textfromResources = textfromResources.Replace(entry.Key.ToString(), entry.Value.ToString());
            }

然后您可以通过电子邮件发送文本(在本例中为 textfromResources 变量),它将包含所有必要的换行符和格式。

就像我说的,您可以对 HTML 文件或您想要的任何类型的文件执行相同的操作。

尽管我的示例是用 C# 编写的(我手头没有任何经典的 ASP 代码,抱歉),但查找和替换值的概念将适用于经典 ASP。

于 2008-11-26T15:38:21.483 回答
1

您显示的代码不应删除任何换行符。问题可能出在电子邮件生成部分。你能展示那部分吗?

邮件的 Content-Type 是 text/plain 吗?

于 2008-11-26T15:40:09.093 回答
0

我建议使用 http://www.webdevbros.net/2007/06/28/template-component-for-classic-asp/

于 2008-11-27T02:49:48.900 回答