Показать сообщение отдельно
Старый 04.10.2012, 12:03   #3  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 423 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Да, конечно сталкивались.

Причина скорее в системных таблицах (они участвуют в методе currentAOSInstance таблицы SysEmailSMTPPassword)

SYSclientSessions
SYSserverSessions

На которых видимо, выставлено свойство AosAutorization.

Так как таблицы системные, снять это свойство (AosAutorization) через АОТ с них нельзя.



Можно, например настроить сервер smtp без использования пароля вообще,
(на какой нибудь порт отличный от порта по умолчанию)

У нас работает так

X++:
static SMTPPassword password()
{
    CryptoBlob cryptoBlob = connull();
    SysEmailSMTPPassword SMTPPassword;

    AOSId AOSId;
    AOSInstanceId AOSInstanceId;

    ;
    // пришлось сделать так как под правами обычных пользователей не проходит метод
    // SysEmailSMTPPassword::currentAOSInstance() без указания ошибки
    // и почта не отправляется даже в режиме пакета
    // подозреваю что это из за глюка с AosAuthorization

    return "";
    // <---

    [AOSId,AOSInstanceId] = SysEmailSMTPPassword::currentAOSInstance();

    SMTPPassword = SysEmailSMTPPassword::find(AOSId,AOSInstanceId);

    if (SMTPPassword.RecId != 0)
        cryptoBlob = SMTPPassword.Password;

    if (cryptoBlob != connull())
        return cryptoblob2str(WinapiServer::cryptUnProtectData(cryptoBlob));
    else
        return '';
}
- можно наверное прописать пароль как константу в коде
- может попробовать прописать методе таблицы SysEmailSMTPPassword
X++:
public static server container currentAOSInstance()
....
clientSessions.skipAosValidation(true);
Я это не пробовал, может поможет ?

Последний раз редактировалось someOne; 04.10.2012 в 12:08.
За это сообщение автора поблагодарили: SuperStar88 (1).