helpf.pro
Регистрация

v8: Почитать текст письма

Ermak
10.02.2016 16:38Прочитано: 4241

Добрый вечер! Встала задача получить письмо. Письмо я получил а вот текст письма выдает в HTML формате, может есть другой способ получить текст письма не в формате HTML, подскажите кто сталкивался с этим.

<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body text="#000000" bgcolor="#FFFFFF">ТУТ ТЕКСТ</body></html>

Вот мой код

Код 1C v 8.х
 Процедура ПолучениеИнтернетПочты()

//ПочтовыйАдресОбмена="ermakov@karelgaz.ru";
POP3Сервер="192.168.2.50";
ПортСервераPOP3Рассылки=110;
Пользователь="ermakov@mail.ru";
Пароль="12345";

Профиль = новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераPOP3 = POP3Сервер;
Профиль.Пользователь = Пользователь;
Профиль.Пароль = Пароль;
Профиль.ПортPOP3 = ПортСервераPOP3Рассылки;
//ПРофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;

Попытка
Предупреждение("Попытка подключения к серверу почты "+Профиль.АдресСервераPOP3);
Состояние("Подключение к серверу "+Профиль.АдресСервераPOP3);
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);

МассивСообщений = Новый Массив;
Предупреждение("Чтение почтовых сообщений");
Состояние("Чтение почтовых сообщений...");
МассивСообщений = Почта.Выбрать(Истина); // ЛОжь - письма с сервера не удаляются...
Исключение
Предупреждение("Ошибка подключения к серверу ","Остановить");
Предупреждение(""+ОписаниеОшибки(),"Остановить");
Сообщить("Ошибка подключения к серверу!");
Сообщить(""+ОписаниеОшибки());
Возврат;
КонецПопытки;

Если МассивСообщений.Количество() = 0 Тогда
Предупреждение("В почтовом ящике нет сообщений. Прерываем работу.");
Сообщить("Почтовый ящик пуст");
ПолученныеПисьма.Очистить();
Возврат;
КонецЕсли;
ОтобразитьПочтовыеПисьма(МассивСообщений);
КонецПроцедуры


Процедура ОтобразитьПочтовыеПисьма(МассивСообщений)
ПолученныеПисьма.Очистить();
Если МассивСообщений.Количество() = 0 Тогда
Возврат; // почтовых сообщений нету.
КонецЕсли;

Предупреждение("Начало отображения сообщений в обработке");
МассивСообщенийОбмена = новый Массив;

ИмяФайлаСообщения = "";
ПолученныеПисьма.Очистить();
Для Индекс = 0 По МассивСообщений.Количество() - 1 Цикл
стр = ПолученныеПисьма.Добавить();
стр.ДатаОтправления = МассивСообщений[Индекс].ДатаОтправления;
стр.Индекс = Индекс;
Стр.ОтКого=МассивСообщений[Индекс].Отправитель.Адрес;
Стр.ДатаПолучения=МассивСообщений[Индекс].ДатаПолучения;
стр.Тема = МассивСообщений[Индекс].Тема;
Для Каждого Вложение из МассивСообщений[Индекс].Вложения Цикл
Стр.ФайлВложения=Вложение.ИмяФайла;
Вложение.Данные.Записать("c:\Почта\"+Вложение.ИмяФайла);
КонецЦикла;
Для Каждого Текст из МассивСообщений[Индекс].Тексты Цикл
Стр.ТекстПисьма=Текст.Текст;
Текст.Данные.Записать("c:\Почта\ТекстСообщения.txt");
КонецЦикла;
КонецЦикла;


Предупреждение("Сообщения отображены и удалены с сервера");
КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
KorolyovSS
11.02.2016 21:35Ответ № 1

Мне нужно было корректно отобразить сообщения.

Для этого я создавал группу из 2х страниц (HTML и Текст) со свойством ОтображениеСтраниц = Ложь.

Завел два реквизита типа Строка. Каждый кинул на соответствующую страницу. На странице HTML поле ввода было со свойством Вид = "Поле HTML документа". На странице Текст Вид  = "Поле текстового документа".

Определял ТипТекста письма и выводил исходя из этого содержимое нужное мне поле одновременно активируя соответствующую страницу группы.

Если тип текста HTML делал так для корректности 

Код 1C v 8.2 УП
 Если СтрЧислоВхождений(Нрег(ТекстПисьмаHTML), "</html")=0 Тогда
ТекстПисьмаHTML = "<HTML><BODY>"+СокрЛП(ТекстПисьмаHTML)+"</BODY></HTML>";
КонецЕсли;
all4cf
12.02.2016 19:13Ответ № 2

Вот Функция очищает текст в формате HTML от тегов и возвращает неформатированный текст или https://helpf.pro/faq/view/990.html

KorolyovSS
13.02.2016 12:23Ответ № 3
KorolyovSS
13.02.2016 12:27Ответ № 4

Некрасиво текст будет отображаться без тегов

Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.