Как использовать текстовый файл шаблона электронной почты и сохранить форматирование? - PullRequest
0 голосов
/ 26 ноября 2008

Я использую предварительно отформатированный текстовый файл в качестве шаблона для электронных писем. Файл имеет разрывы строк, где я хочу их. Я хотел бы использовать этот шаблон для отправки простого текстового электронного письма, но когда я это делаю, я теряю все форматирование Разрывы строк удаляются.

Как мне разобрать этот файл и сохранить разрывы строк? Я не хочу использовать тег <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

Чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 26 ноября 2008

это то, что я сделал ...

Я беру текстовый или 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.

1 голос
/ 26 ноября 2008

Код, который вы показываете, не должен убирать разрывы строк. Проблема, вероятно, связана с генерацией электронной почты. Не могли бы вы показать эту часть?

Является ли тип содержимого почты: текст / обычный?

0 голосов
/ 27 ноября 2008

Я бы порекомендовал использовать http://www.webdevbros.net/2007/06/28/template-component-for-classic-asp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...