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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2010, 19:11   #1  
euserz is offline
euserz
Участник
 
3 / 10 (1) +
Регистрация: 04.04.2007
AX 2009: Игнорируется аттачмент - CDO.Message
Проблема: не отсылается аттачмент, когда используем SysEmailBatch, при этом не выдаётся никакой ошибки. Аттачмент небольшой - обычный файл (при задании неправильного имени файла, выдается ошибка о том, что не удается найти файл). Причем, используя SysEmailBatch, сам имэйл отсылается корректно, но без аттачмента. В чем может быть проблема, кто-нибудь сталкивался с похожей?

(smmOutlookEmail отсылает аттачмент без проблем, но этот метод не имеет требуемой нам функциональности).

Используемый код:
X++:
static void Job3(Args _args)
{
SysEmailBatch mailer;
InteropPermission perm = new InteropPermission( InteropKind::ComInterop );
smmOutlookEmail out = new smmOutLookEmail();
;
// [B]Outlook - this works but is interactive (unusable for a batch process) and lacks some options[/B]
if (out.createMailItem())
{
out.addEMailRecipient([EMAIL="'test2@mail.com'"]'test2@mail.com'[/EMAIL]);
out.addSubject('Test mail');
out.isHTML(false);
out.addBodyText('Hi There');
out.addSubject( 'test attachment' );
out.addFileAsAttachment('\\\\networkshare\\document\\crmFiles\\1G4.JPG');
out.sendEMail(smmSaveCopyOfEmail::No);
info( 'sent' );
}
 
// [B]sysEmailBatch using CDO.Message - this works (no error) but does not send the attachment[/B]
perm.assert();
mailer = new sysEmailBatch();
mailer.parmEmailAddr( [EMAIL="'test2@mail.com'"]'test2@mail.com'[/EMAIL] );
mailer.parmSenderAddr( [EMAIL="'test4@mail.com'"]'test4@mail.com'[/EMAIL] );
mailer.parmSendername( 'dwc' );
mailer.parmPriority( emailPriority::Normal );
mailer.parmSubject( 'will this email contain an attachment?' );
mailer.parmMessageBody( 'a boquet 4 u' );
mailer.mailer().attachments().add( '\\\\networkshare\\document\\crmFiles\\1G4.JPG' );
mailer.run();
}
Старый 04.09.2010, 01:57   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от euserz Посмотреть сообщение
не отсылается аттачмент, когда используем SysEmailBatch. В чем может быть проблема?
X++:
mailer.mailer().attachments().add( '\\\\networkshare\\document\\crmFiles\\1G4.JPG' );
Думаю, все банально: SysEmailBatch всегда работает на сервере, вы же либо задаете путь к файлу в контексте клиента, либо указываете UNC-путь, к которому у пользователя, под чьей учетной записью работает AOS, нет доступа. Если AOS работает под "штатным" Network Service, то это на 99% так.
Старый 04.09.2010, 13:03   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Используемый код:
X++:
mailer.mailer().attachments().add( '\\\\networkshare\\document\\crmFiles\\1G4.JPG' );
А почему не
X++:
mailer.addAttachmentfileName()
?

И потом, не проще ли пользоваться готовым кодом (SysEmailTable::sendEmail() к примеру)?

\\networkshare\document\crmfiles является каталогом для вложений из Email parameters?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 05.09.2010, 16:43   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
\\networkshare\document\crmfiles является каталогом для вложений из Email parameters?
Заодно пройдитесь отладчиком и поправьте \\Tables\SysEmailTable\Methods\isFromAttachmentsFolder()
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: euserz (1).
Старый 06.09.2010, 09:35   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от euserz Посмотреть сообщение
Проблема: не отсылается аттачмент, когда используем SysEmailBatch, при этом не выдаётся никакой ошибки. Аттачмент небольшой - обычный файл (при задании неправильного имени файла, выдается ошибка о том, что не удается найти файл). Причем, используя SysEmailBatch, сам имэйл отсылается корректно, но без аттачмента. В чем может быть проблема, кто-нибудь сталкивался с похожей?

(smmOutlookEmail отсылает аттачмент без проблем, но этот метод не имеет требуемой нам функциональности).

Используемый код:
когда давно тоже сталкивался с таким (думаю это относится не только к Ax2009). Проблема решилась банальным копированием файла на АОС в tmp-шный каталог (WinApi::getTempPath()). И соответственно его потом и подцепляешь в аттачмент письма.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 06.09.2010, 14:25   #6  
Mykola Galak is offline
Mykola Galak
Участник
 
40 / 39 (2) +++
Регистрация: 24.01.2008
Адрес: Copenhagen
Проверте лежит ли ваш аттачмент в папочке, которая прописана в Administration\Setup\Email parameters
Старый 23.09.2010, 00:13   #7  
euserz is offline
euserz
Участник
 
3 / 10 (1) +
Регистрация: 04.04.2007
Цитата:
Сообщение от Vadik Посмотреть сообщение
Заодно пройдитесь отладчиком и поправьте \\Tables\SysEmailTable\Methods\isFromAttachmentsFolder()
Извиняюсь за долгое молчание - был в отпуске.

Решили проблему прописью каталога "\\networkshare\document\crmfiles" в Email parameters - кто бы мог подумать о его существовании... Спасибо.

Кроме того, по Вашей наводке изменили метод \\Tables\SysEmailTable\Methods\isFromAttachmentsFolder(), теперь AOS забирает аттачи из любого каталога :]

Цитата:

А почему не
X++:mailer.addAttachmentfileName()
Потому что, судя по всему, он отсылает назад к методу
X++:
mailer.mailer().attachments().add()
Теги
attachment, sysemailbatch, отправка email

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
emeadaxsupport: You get the following warning message in BizTalk Server 2006 R2/2009 - The message does not contain a body part Blog bot DAX Blogs 0 18.09.2009 03:13
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47

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

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

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