Показать сообщение отдельно
Старый 28.02.2016, 16:55   #3  
someOne is offline
someOne
Участник
Аватар для someOne
 
174 / 432 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
В итоге, проблему решил таким образом:

- создать новую статичную функцию преобразования кириллических доменов в email адресах

X++:
// Преобразовать email содержащий кириллические символы в домене получателя
static client server str convertEmailCyr(str _email)
{
    int     pos;
    str     domain;
    str     user;
    str     ret;
    System.Globalization.IdnMapping         idn;
    int     len;
    ;
    len = strLen(_email);

    if (subStr(_email, len - 1, 2) != "рф")
        return _email;

    pos = strfind(_email, "@", 1, len);

    if (pos == 0)
        return _email; // это странно

    user = subStr(_email, 1, pos - 1);

    domain = subStr(_email, pos + 1, len - pos);

    new InteropPermission(InteropKind::ClrInterop).assert();

    try
    {
        idn = new System.Globalization.IdnMapping();
        domain = idn.GetAscii(domain);
    }
    catch
    {
        return _email;
    }


    ret = strFmt("%1@%2", user, domain);

    return ret;
}
- далее вставить эту функцию в метод класса SysMailerAddressField
X++:
// Add item to the collection
void appendAddress(str addr, str name='')
{
    str address;
    str addresses;
    ;
    // new
    addr = convertEmailCyr(addr);

    if (prmisdefault(name))
    {
        address = addr;
    }
    else
    {
        address = name + '[' + addr + ']';
    }

...
После чего почту можно отправлять на кириллические адреса из AX2009
За это сообщение автора поблагодарили: gl00mie (2).