|
![]() |
#1 |
newborn in DAX
|
на клиенте всё работает, теперь это надо заставить работать на сервер из batch...
|
|
![]() |
#2 |
Administrator
|
Цитата:
В режиме "старого" пакетника - такое можно было провернуть, создав static-метод на клиенте (static client) и вызвать его из метода run, который вызывает пакетник. Тут... сильно подозреваю что может и не получиться (надо попробовать).
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#3 |
newborn in DAX
|
класс property Run on - Called from
public class mlm_SendEmailWithAttachment extends RunBaseBatch { } у нас пару таких классов запускается на сервер по ночам Basic -> Inquires -> Bach job это и называется старым пакетником? |
|
![]() |
#4 |
newborn in DAX
|
![]()
Danm, просто гениально, об этом я не подумала. Почему-то считала что permition относятся к файлу, чтобы его можно было читать.
оказывается тут всё по другому. Респект и уважение. Работает УРА. Всем огромное спасибо. Что бы я без форума делала???? выдаёт ещё какие-то ошибки, попробую разобраться. Но первое письмо доходит, а на втором почему- то опять требует Request for the permission of type 'InteropPermission' failed. в конце метода надо ещё какие-то танцы с бубном по поводу 'InteropPermission' или нет? Последний раз редактировалось timaluhs; 27.01.2011 в 14:05. Причина: добавление |
|
![]() |
#5 |
newborn in DAX
|
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... пока не очень понятно Последний раз редактировалось timaluhs; 27.01.2011 в 14:37. |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от 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... пока не очень понятно Если кратко - то так: 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"); //имя пакетной группы, нужно создать такую е } |
|
|
За это сообщение автора поблагодарили: ice (2), mikki_messer (1). |
![]() |
#7 |
newborn in DAX
|
воспользовалась вторым вариантом без шаблонов.
Добавила в мой класс в метод run. Почему-то не находит файл который надо прикреплять. Письмо приходит без него. При запуске нет никаких сообщений об ошибке. И письмо попадает в спам корзину. Тоже не очень хорошо - не все её проверяют и обращают внимание что там прибавилось письмо. если написать реальный адрес в поле от кого, то письмо попадает во входящие. Одной головной болью меньше добавила проверку WInAPI::fileExists(_fileName), возвращает true , но прикреплять не хочет Последний раз редактировалось timaluhs; 30.01.2011 в 11:12. |
|
Теги |
email batch, atachment |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|