AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.01.2011, 19:39   #1  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от timaluhs Посмотреть сообщение
SomeOne
просто весь интернет пестрит сообщениями что можно послать email без прикреплённого файла, а если с файлом то только код dot.net и все любезно предлагают образцы кода. Попробую посмотреть класс. Спасибо
Можно пример или ссылку msdn очень скуп.
server static void sendMail(
SysEmailSystemId _emailId,
LanguageId _language,
str _emailAddr,
Map _mappings = null,
FilenameOpen _attachmentfileName = '',
str _xmlData = '',
boolean _isTraceable = false,
userId _userId = '',
boolean _isWithRetries = false)

откуда берётся SysEmailSystemId _emailId? где сохраняется body, subject, to, from...
пока не очень понятно
Что то про это было написано тут http://axapta.mazzy.ru/lib/email/

Если кратко - то так:
1. Настраиваем параметры почтового сервера в форме – администрирование – настройки – параметры электронной почты

2. Создаем шаблон почтового сообщения в форме основное – настройка – шаблоны сообщений эл. Почты. Установить бокс «показать электронную почту системы»
При этом поле «код электронной почты» - и будет SysEmailSystemId. Если на закладке «Разное» в поле «Группа пакетов» указать код группы пакетов – сообщение будет отправляться сервером пакетной обработки, а не в режиме «онлайн».
Это удобно, например, когда рассылка осуществляется, например, при обновлении записи таблицы. Позволяет отделить процесс отправки сообщения в отдельный поток, и пользователю не придется ожидать окончание отправки сообщения, например при обновлении записи.

В нижнем гриде так же добавляем новую запись – там можно указывать шаблоны, каждый для отдельного языка. При нажатии кнопки «шаблон» - открывается окно редактора, где вводится шаблон самого сообщения.

В шаблоне тела сообщения можем использовать макросы типа:

“Уважаемый %User%, запрашиваемый вами файл с отчетом %ReportName% в прикрепленном файле”.

Кстати, так же шаблоном можно указать и тему сообщения, например '%subject%' в поле "тема"

3. Сам код отправки сообщения:
X++:
static server void mail_testServer(Args _args)
{
    map mappings;
    ;

            mappings = new map(Types::String, Types::String);

            mappings.insert("User",         "Василий Пупкин");
            mappings.insert("ReportName", "Отчет о движении денежных средств");
            mappings.insert("subject", "Тестовое сообщение");

            SysEmailSystemTable::sendMail('test', "ru", 'pupkin@mail.ru', mappings);
}
Если не использовать шаблоны сообщений - то все проще.
Вот код отправки сообщения через сервер пакетной обработки
X++:
static void Job25(Args _args)
{
    SysEmailBatch   SysEmailBatch;
    ;
    SysEmailBatch = new SysEmailBatch();
    SysEmailBatch.parmEmailAddr("im@mail.ru");
    SysEmailBatch.parmMessageBody("test");
    SysEmailBatch.addAttachmentfileName("C:\\boot.ini");
    SysEmailBatch.parmSenderAddr("ss@mail.ru");
    SysEmailBatch.sendToBatch("mail"); //имя пакетной группы, нужно создать такую е
}
Если нужна отправка онлайн - то последняя строка - SysEmailBatch.run();
За это сообщение автора поблагодарили: ice (2), mikki_messer (1).
Старый 30.01.2011, 10:45   #2  
timaluhs is offline
timaluhs
newborn in DAX
Аватар для timaluhs
 
102 / 10 (1) +
Регистрация: 16.12.2010
Адрес: Израиль
воспользовалась вторым вариантом без шаблонов.
Добавила в мой класс в метод run.
Почему-то не находит файл который надо прикреплять. Письмо приходит без него. При запуске нет никаких сообщений об ошибке.
И письмо попадает в спам корзину. Тоже не очень хорошо - не все её проверяют и обращают внимание что там прибавилось письмо.

если написать реальный адрес в поле от кого, то письмо попадает во входящие. Одной головной болью меньше
добавила проверку WInAPI::fileExists(_fileName), возвращает true , но прикреплять не хочет

Последний раз редактировалось timaluhs; 30.01.2011 в 11:12.
Старый 30.01.2011, 11:43   #3  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от timaluhs Посмотреть сообщение
Почему-то не находит файл который надо прикреплять. Письмо приходит без него. При запуске нет никаких сообщений об ошибке.
У вас WInAPI::fileExists(_fileName) возвращает true на клиенте, а отправка писем происходит на стороне сервера. И там WinAPIServer::fileExists(_fileName) скорее всего возвращает false. Таким образом можно прикрепить к письму только файлы с сетевым путём типа "\\сервер\папка\файл".
__________________
Дмитрий
Старый 30.01.2011, 11:55   #4  
timaluhs is offline
timaluhs
newborn in DAX
Аватар для timaluhs
 
102 / 10 (1) +
Регистрация: 16.12.2010
Адрес: Израиль
Не может на кленте возвращаться true - там просто не существует какого пути.
А путь я действительно указываю полный - вместе с сервером.
а тут Отправка письма при помощи SysEmailBatch. Проблема с прикреплением файла написано, что добавляются файлы которые указаны в Администрировнаие\Настройки\Параметры и из какой папки можно добавлять файлы. Теперь файл добавляется, но без расширения. Т.е что бы открыть надо указат, чем открыть. А я знаю, что посылается картинка и получатели не будут особо напрягаться - ну не открывается - пришли по новой.
Старый 10.02.2011, 09:26   #5  
timaluhs is offline
timaluhs
newborn in DAX
Аватар для timaluhs
 
102 / 10 (1) +
Регистрация: 16.12.2010
Адрес: Израиль
В каком-то из постов написали что надо починить \\Tables\SysEmailTable\Methods\isFromAttachmentsFolder(), чтобы мог забирать прикреплённые файлы из любого каталога.

нашла оригинальный пост
AX 2009: Игнорируется аттачмент - CDO.Message

Последний раз редактировалось timaluhs; 10.02.2011 в 09:35.
Теги
email batch, atachment

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Batch processing Blog bot DAX Blogs 0 29.01.2009 17:05
axaptabuilder: How to setup Axapta batch server running as user defined windows service Blog bot DAX Blogs 0 12.04.2007 16:10
Как указать отправителя при передаче письма через Mapi wit DAX: Программирование 1 14.01.2005 17:08
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:13.