03.09.2010, 19:11 | #1 |
Участник
|
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 |
Участник
|
Думаю, все банально: SysEmailBatch всегда работает на сервере, вы же либо задаете путь к файлу в контексте клиента, либо указываете UNC-путь, к которому у пользователя, под чьей учетной записью работает AOS, нет доступа. Если AOS работает под "штатным" Network Service, то это на 99% так.
|
|
04.09.2010, 13:03 | #3 |
Модератор
|
Цитата:
Используемый код:
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 |
Модератор
|
Цитата:
\\networkshare\document\crmfiles является каталогом для вложений из Email parameters?
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: euserz (1). |
06.09.2010, 09:35 | #5 |
Ищущий знания...
|
Цитата:
Сообщение от euserz
Проблема: не отсылается аттачмент, когда используем SysEmailBatch, при этом не выдаётся никакой ошибки. Аттачмент небольшой - обычный файл (при задании неправильного имени файла, выдается ошибка о том, что не удается найти файл). Причем, используя SysEmailBatch, сам имэйл отсылается корректно, но без аттачмента. В чем может быть проблема, кто-нибудь сталкивался с похожей?
(smmOutlookEmail отсылает аттачмент без проблем, но этот метод не имеет требуемой нам функциональности). Используемый код:
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
06.09.2010, 14:25 | #6 |
Участник
|
Проверте лежит ли ваш аттачмент в папочке, которая прописана в Administration\Setup\Email parameters
|
|
23.09.2010, 00:13 | #7 |
Участник
|
Цитата:
Решили проблему прописью каталога "\\networkshare\document\crmfiles" в Email parameters - кто бы мог подумать о его существовании... Спасибо. Кроме того, по Вашей наводке изменили метод \\Tables\SysEmailTable\Methods\isFromAttachmentsFolder(), теперь AOS забирает аттачи из любого каталога :] Цитата:
А почему не X++:mailer.addAttachmentfileName() X++: mailer.mailer().attachments().add() |
|
Теги |
attachment, sysemailbatch, отправка email |
|
|