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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.12.2007, 14:24   #1  
donMigel is offline
donMigel
Участник
Аватар для donMigel
 
133 / 33 (2) +++
Регистрация: 31.08.2004
Адрес: Мытищи
Dundas.mailer-код ошибки 0x80020009
Метод "SendMail" в COM-объекте класса "Dundas.mailer" возвратил код ошибки 0x80020009 (DISP_E_EXCEPTION), который означает: Исключительное состояние возникло в COM-объектe.
Есть предположение,что в этой бибилиотеке есть ограничение на отсыл письма, в названии файла аттачмента которого больше 70 символов.
Кто подскажет по этому поводу что-нибудь?
__________________
_____________________________________________--
Axapta 3.0 SP4 KR1 Build #10 for EE
Ищу работу!
За это сообщение автора поблагодарили: akvi (1).
Старый 20.05.2009, 19:10   #2  
akvi is offline
akvi
Участник
 
119 / 12 (1) ++
Регистрация: 31.03.2003
Адрес: Москва
Цитата:
Сообщение от donMigel Посмотреть сообщение
Есть предположение,что в этой бибилиотеке есть ограничение на отсыл письма, в названии файла аттачмента которого больше 70 символов.
Кто подскажет по этому поводу что-нибудь?
Возникла такая же ошибка, выяснилось, что ограничение 46 символов. Спасибо за подсказку
Старый 14.06.2010, 16:44   #3  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
странно, провел эксперимент: у меня на 60 валится
__________________
--- SHiSHok
Старый 12.08.2010, 09:49   #4  
SIrina is offline
SIrina
Участник
Аватар для SIrina
 
51 / 10 (1) +
Регистрация: 02.03.2007
У меня тоже ограничение на 70 символов. Есть идеи как обойти это ограничение? Нам реально это очень усложняет жизнь
__________________
MS DAX 2012
Старый 06.10.2010, 10:28   #5  
in.dc is offline
in.dc
Участник
 
29 / 53 (2) ++++
Регистрация: 09.04.2009
-> ContentName
Цитата:
Сообщение от SIrina Посмотреть сообщение
У меня тоже ограничение на 70 символов. Есть идеи как обойти это ограничение? Нам реально это очень усложняет жизнь
Как вариант - при прикреплении вложений с длинными именами использовать параметр contentName метода SysMailerAttachments.add(...) с передачей в него краткого 'синонима' имени файла:
X++:
void add(str filename, str contentName='', str contentType='', str encodingType='BASE64', str charSet='US-ASCII', str customHeaders='')
Для примера набросал небольшой job:
X++:
static void jbAttachLongFileName(Args _args)
{
    SysEmailParameters      sysEmailParameters = SysEmailParameters::find() ;
    SysMailer               sysMailer   ;

    TextBuffer              textBuffer  ;
    InventTable             inventTable ;

    str                     fileName    ;
    FileName                contentName = "ContentName-ShortString"   ;
    Counter                 counter     ;

    #define.CharSet( "windows-1251" )

    //  TODO: прописать реальные почтовые адреса
    #define.EmailFrom( "email_from@" )
    #define.EmailTo( "email_to@" )

    #File
    ;

    //  формирование содержимого файла - 20 позиций InventTable
    textBuffer = new TextBuffer() ;
    select inventTable ;
    for( counter=0; counter<20 && inventTable; counter++ )
    {
        textBuffer.appendText( strfmt( "%1 - %2\n", inventTable.ItemId, inventTable.ItemName ) ) ;
        next inventTable ;
    }

    fileName = strfmt( "%1_%2%3", contentName, strrep( "Xx", 100 ), #txt ) ;
    info( strfmt( "Длинное имя файла для отправки [%1]: %2", strlen( fileName ), fileName ) ) ;

    fileName = WinAPI::getTempPath() + fileName ;
    textBuffer.toFile( fileName ) ;
    textBuffer.replace( "\n", "<br>" ) ;

    sysMailer = new SysMailer() ;
    try {
        sysMailer.SMTPRelayServers().add(   sysEmailParameters.SMTPRelayServerName  ,
                                            sysEmailParameters.SMTPPortNumber       ,
                                            sysEmailParameters.SMTPServerIPAddress  ,
                                            sysEmailParameters.SMTPUserName         ,
                                            sysEmailParameters.SMTPPassword     ) ;

        sysMailer.fromAddress( #EmailFrom ) ;
        sysMailer.tos().add( #EmailTo ) ;

        sysMailer.subject( "InventTable" ) ;
        sysMailer.HTMLBodyCharSet( #CharSet ) ;
        sysMailer.htmlBody( textBuffer.getText() ) ;

        sysMailer.attachments().add( fileName, contentName + #txt ) ;
        sysMailer.sendMail() ;
    }
    catch
    {
        exceptionTextFallThrough() ;
    }
}
__________________
Dynamics AX 4.0 SP2
За это сообщение автора поблагодарили: SIrina (1), dmitrybarynov (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Метод 'SendMail' в COM-объекте класса 'Dundas.mailer' возвратил код ошибки 0x80004005 (E_FAIL), который означает: The HELLO command failed. Andrew Akhmetov DAX: Программирование 4 09.04.2008 13:24
Народ, что за ошибки... -Atom- DAX: Администрирование 3 12.09.2007 09:55
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 5 07.09.2004 17:24
Ошибка "необходимо заполнить 'основной код сотрудника' " alpin DAX: Функционал 2 04.12.2003 16:28

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

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

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