AXForum  
Go Back   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 28.05.2009, 09:28   #1  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Коллеги, день добрый.
Никто не сталкивался с ситуацией когда нужно создать из Navision html письмо с форматированием и с картинками. С помощью codeunit 397 Mail письма в Outlook создаются прекрасно, но они в текстовом формате...
Буду очень благодарен, если кто подкинет идею.
Old 28.05.2009, 10:55   #2  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Join Date: 28.12.2004
Location: Киев
Quote:
Originally Posted by .rejector. View Post
Коллеги, день добрый.
Никто не сталкивался с ситуацией когда нужно создать из Navision html письмо с форматированием и с картинками. С помощью codeunit 397 Mail письма в Outlook создаются прекрасно, но они в текстовом формате...
Буду очень благодарен, если кто подкинет идею.
Либо самому писать прогу, либо найти прогу для конвертации и настроить её, чтобы отрабатывало меню File->Send->Form to Program.
А html стандартизированный или постоянно его стуктура меняется?
Old 28.05.2009, 11:22   #3  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Стандартизированный. Просто письмо должно быть красивое, с форматированием и картинками
Old 28.05.2009, 12:56   #4  
romeo is offline
romeo
Участник
romeo's Avatar
 
564 / 10 (2) +
Join Date: 31.03.2004
Quote:
Originally Posted by .rejector. View Post
Стандартизированный. Просто письмо должно быть красивое, с форматированием и картинками
REPORT.SAVEASHTML(FileName). Затем FileName вкладываете в письмо.
Old 28.05.2009, 13:08   #5  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Это получится письмо с вложением, а нужно html письмо.
Еще нужно что бы ушедшее письмо осталось в папке "Исходящее"
Ох...
Old 28.05.2009, 14:24   #6  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Join Date: 15.02.2005
Возможно так поможет:
OutlookMsg:=OutlookApp.CreateItem(0);
OutlookAttach:=OutlookMsg.Attachments;
OutlookAttach.Add(lFileName, 1);
OutlookMsg.Display;
Old 28.05.2009, 17:02   #7  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
А чуть поподробней плиз...
Какой Automation, какой метод.
Old 29.05.2009, 08:53   #8  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Join Date: 15.02.2005
OutlookApp Automation 'Microsoft Outlook 11.0 Object Library'.Application
OutlookMsg Automation 'Microsoft Outlook 11.0 Object Library'.MailItem
OutlookAttach Automation 'Microsoft Outlook 11.0 Object Library'.Attachments

Методы собственно в коде.
Old 29.05.2009, 09:56   #9  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
rmv, спасибо большое!!! Все получилось.

Возникла ещё проблемка, в получившимся html письме нужно произвести вставку, например, имени клиента. Сам шаблон, на основании которого формируется письмо, имени не содержит.
То есть шаблон выглядит так:

Уважаемый %1!
Ваш заказ № %2 бла, бла...
Всего наилучшего!


В письмо этот шаблон затягивается, всё прекрасно. А вот как теперь вместо %1 и %2 подставить значения из заказа?
Формировать новый шаблон, путем копирования оригинального шаблона, модифицировать налету, вставлять созданный шаблон в файл, а после отправки удалять... Наверняка есть более корректный метод.
Old 02.06.2009, 12:52   #10  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Join Date: 22.05.2006
А пришлите код, которым заполняете Body сообщения
Old 03.06.2009, 10:16   #11  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Join Date: 15.02.2005
Quote:
Originally Posted by .rejector. View Post
rmv, спасибо большое!!! Все получилось.

Возникла ещё проблемка, в получившимся html письме нужно произвести вставку, например, имени клиента. Сам шаблон, на основании которого формируется письмо, имени не содержит.
То есть шаблон выглядит так:

Уважаемый %1!
Ваш заказ № %2 бла, бла...
Всего наилучшего!


В письмо этот шаблон затягивается, всё прекрасно. А вот как теперь вместо %1 и %2 подставить значения из заказа?
Формировать новый шаблон, путем копирования оригинального шаблона, модифицировать налету, вставлять созданный шаблон в файл, а после отправки удалять... Наверняка есть более корректный метод.
Я формировал XHTML в самом Навижне (нужно было сгенерить таблицу с ссылками на документы Нава).
При использовании шаблонов возможно лучший вариант использовать методы Replace (если таковые есть) текстового редактора Outlook'a.
Old 04.06.2009, 09:59   #12  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Quote:
Originally Posted by .Quattro. View Post
А пришлите код, которым заполняете Body сообщения
Написал с подсказки rmv следующую функцию
Code:
SendMessage(From : Text[100];To : Text[1024];ToName : Text[250];Subject : Text[250];TextBody : Text[1024];Attachment : Text[500])

IF ISCLEAR(OutlookApp) THEN
  CREATE(OutlookApp);
OutlookMsg:=OutlookApp.CreateItem(0);

OutlookMsg."To"("To");
OutlookMsg.Subject(Subject);

OutlookAttach:=OutlookMsg.Attachments;
OutlookAttach.Add(Attachment, 1);
OutlookMsg.Display;
В параметре Attachment передаю путь к файлу HTML-шаблона.
Old 04.06.2009, 11:41   #13  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Quote:
Originally Posted by rmv View Post
При использовании шаблонов возможно лучший вариант использовать методы Replace (если таковые есть) текстового редактора Outlook'a.
Наверняка есть, но мои попытки найти такой метод ни к чему не привели.
Old 05.06.2009, 16:41   #14  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Join Date: 22.05.2006
Quote:
Originally Posted by .rejector. View Post
Написал с подсказки rmv следующую функцию
Code:
SendMessage(From : Text[100];To : Text[1024];ToName : Text[250];Subject : Text[250];TextBody : Text[1024];Attachment : Text[500])

IF ISCLEAR(OutlookApp) THEN
  CREATE(OutlookApp);
OutlookMsg:=OutlookApp.CreateItem(0);

OutlookMsg."To"("To");
OutlookMsg.Subject(Subject);

OutlookAttach:=OutlookMsg.Attachments;
OutlookAttach.Add(Attachment, 1);
OutlookMsg.Display;
В параметре Attachment передаю путь к файлу HTML-шаблона.
Ну а что мешает сформировать тело письма вида:
Quote:
OutlookMsg.HTMLBody := STRSUBSTNO('Шаблон', Параметры);
Кстати, Ваш пример с незапущенным Outlook'ом скорее всего не сработает - надо Logon делать перед созданием сообщения.
Old 05.06.2009, 16:53   #15  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Join Date: 15.02.2005
Quote:
Originally Posted by .Quattro. View Post
Ну а что мешает сформировать тело письма вида:
OutlookMsg.HTMLBody := STRSUBSTNO('Шаблон', Параметры);
Мне помешает ограничение в 1000 символов.

Quote:
Originally Posted by .Quattro. View Post
Кстати, Ваш пример с незапущенным Outlook'ом скорее всего не сработает - надо Logon делать перед созданием сообщения.
Не исключено . Полагаю впрочем, что автора топика этот вопрос пока сильно не волнует.
Old 06.06.2009, 19:20   #16  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Да, действительно шаблон письмо больше 1024 символов.
Вопрос с запущенным Outlook действительно не волнует, те кому нужно эта функция, имею запущенный Outlook по умолчанию.
Old 11.06.2009, 15:12   #17  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Join Date: 22.05.2006
А в каком виде хранится шаблон сообщения? - В записях таблицы в Нав или как отдельный файл на сервере?

Ограничение в длине переменной в 1024 символа здесь вообще ни при чем. HTMLBody не ограничена этим значеним.
Old 15.06.2009, 10:00   #18  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Шаблон хранится как отдельный файл на сервере.
Old 15.06.2009, 10:53   #19  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Join Date: 22.05.2006
Тогда можно же этот файл построчно записать в HTMLBody письма. Через STRSUBSTNO заменить параметры на значения.
Old 17.06.2009, 09:28   #20  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Join Date: 08.04.2004
Да, блин, так уже и сделал. Но мне не нравится, как то это через костыли получается.
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 17:48.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.