Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Здравствуйте! В надежде что кто-то сталкивался и сможет определить что за ерунда происходит с MSMAPI при поптыке отправки почты через TheBat. пожалуйста откликнитесь кто что думает. Есть подозрение, что дело в настройке Бата. Может вручную в реестре где что поковырять типа принудительной установки дефолтового аккаунта или что еще. Но я уже без сил. В форуме и в интернете ничего не нашел т.к. самое фиговое, что в одном месте работает, а в другом НЕТ!!!

База ACC2003, все компоненты зарегены, лицензии введены, объекты на форме, код отлажен.
В ОС: TheBat проинсталлирован, клиент по умолчанию, Simple MAPI работает (инициирование отправки письма срабатывает корректно даже если Бат не запущен запускает его и создает письмо) и всё прочее.

Кусок кода обращения к MAPI
'Почта использоваться может ТОЛЬКО установленная по умолчанию
Me.MAPISession1.LogonUI = False 'это чтобы не показывалось окно подтверждения email и пароля
Me.MAPISession1.UserName = "мойаккаунт"
Me.MAPISession1.Password = "мойпароль"
Me.MAPISession1.NewSession = True'Me.MAPISession1.Action = 1

Me.MAPISession1.SignOn'ЗАТЫК ВСЕГДА ЗДЕСЬ. ЧТО ЕЙ НЕ НРАВИТСЯ????

Me.MAPIMessages1.SessionID = Me.MAPISession1.SessionID
Me.MAPIMessages1.Compose 'очистить буфер перед отсылкой


Ситуация такая: Винда 10 32-б, Офис 2010 32-б, TheBat 7.4 - всё работает, отправляется. никаких ошибок!

Винда 10 64-б, Офис 2010 32-б, TheBat 7.4 - спотыкается всё время на Me.MAPISession1.SignOn с ошибкой "Login has failed"
Винда ХР, Офис 2003, TheBat 7.4 - Та же самая проблема!
30 янв 19, 19:05    [21798194]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Таак, кое что уже стало немного понятнее. Поигрался с параметром
Me.MAPISession1.LogonUI
сделал его True и после ручного ввода логина-пароля ящика всё сработало. Елы палы что ж ему не нравится то в первом варианте, почему автоматом не хочет цепляться к ящику?!
Я уже и логин пароль попробовал обрезать тримом для чистоты эксперимента, ноль результата.
30 янв 19, 21:22    [21798292]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Ээх, ерундень несусветная. Рано я обрадовался - теперь там где работало, перестало, а где НЕ работало, заработало (но с батовским диалогом выбора аккаунта для отправки). что-то где-то с дефолтами в Бате, а где .......?
Теперь почему-то там где работало ругается на
Me.MAPIMessages1.Compose 'очистить буфер перед отсылкой
MAPI Failure: valid session ID does not exist

До этого оно находило всё, а теперь не хочет.

К сообщению приложен файл. Размер - 6Kb
30 янв 19, 23:14    [21798337]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
court
Member

Откуда:
Сообщений: 1797
kulib,

А зачем тебе понадобилось это МАПИ ?
У Бата очень не слабая поддержка параметров командной строки, во всяком случае отправить/получить письма - "как два байта переслать"
Первое же, что выдал Гугл:
тыц
тыц
31 янв 19, 10:46    [21798510]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
court
kulib,

А зачем тебе понадобилось это МАПИ ?

есть такая необходимость. В базе хранятся все данные по адресатам, типам мессейджев, периодичности, аттачам и пр.. Поэтому мне нужно (ну можно сказать я умею только так) из базы и инициировать создание и отправку писем. Причем еще раз повторяю - это работает (если надо выложу полный код. но там ничего нового для разбирающихся), только как-то странно работает. Мне пришлось даже на пользовательской форме пока сделать два варианта - типа если не получилось так, попробуй так))))

К сообщению приложен файл. Размер - 10Kb
31 янв 19, 14:20    [21798799]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
самое главное что и здесь всё нормально! Дефолтовый аккаунт есть и он правильный (даже неправильный пробовал. всё равно та же самая ерунда!)
Function DefaultMailAccount1() As String
    ' читает из реестра настройки почтового ящика,
    ' установленного в TheBAT! как "ящик по-умолчанию"
    ' возвращает адрес почты, или пустую строку, если TheBAT! не настроен
    On Error Resume Next: Err.Clear
    Key$ = "HKEY_CURRENT_USER\Software\RIT\The Bat!\Users depot\Default"
    DefaultMailAccount1 = CreateObject("WScript.Shell").RegRead(Key$)
End Function
31 янв 19, 14:25    [21798811]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
Stanislav P
Member

Откуда: Сочи
Сообщений: 96
kulib, есть подозрение, что используется x86 COM-объект, а система x64. Из-за этого скорее всего проблема и возникает.
1 фев 19, 11:41    [21799463]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
Stanislav P
Member

Откуда: Сочи
Сообщений: 96
Было-бы неплохо, если бы ты выложил код, в котом этот объект создаётся.
1 фев 19, 11:45    [21799472]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Stanislav P
kulib, есть подозрение, что используется x86 COM-объект, а система x64. Из-за этого скорее всего проблема и возникает.

МАПИшка вот эта https://yadi.sk/d/o8qzQZMxk1MBtw

Система конечно W10 64. На 32-й десятке работает нормально. Но в то же время ж на ХП тоже не работает. поэтому разрядность тут под вопросом.
4 фев 19, 12:58    [21801200]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Stanislav P
Было-бы неплохо, если бы ты выложил код, в котом этот объект создаётся.

собственно вот и кусок кода относяшийся именно к созданию письма
Select Case Me.Группа65.Value
    Case 1
        Me.MAPISession1.LogonUI = False 'это чтобы не показывалось окно подтверждения email и пароля
    Case 2
        Me.MAPISession1.LogonUI = True
End Select

Me.MAPISession1.UserName = Trim("моймейл") '
Me.MAPISession1.Password = CurrentProject.Connection.Execute("Select Alias.Pass1 from [~TMPCLP_tbl_service] As Alias WHERE (Alias.Title=" & """" & "POST" & """" & ")").Fields(0)
Me.MAPISession1.NewSession = True
'Me.MAPISession1.Action = 1
Me.MAPISession1.SignOn
'текст письма
sTextMess = CurrentProject.Connection.Execute("SELECT tbl_Controls.[TextValue] FROM tbl_Controls WHERE ((tbl_Controls.[Control])=" & """" & "TextMail" & """" & ")").Fields(0)
'тема письма
sSubj = sSys & " " & CurrentProject.Connection.Execute("SELECT tbl_Controls.[TextValue] FROM tbl_Controls WHERE ((tbl_Controls.[Control])=" & """" & "Subject" & """" & ")").Fields(0)

    'собственно сама отправка письма _
    В среде разработки VBA вы должны добавить Tools->References->Components->Microsoft Mapi Controls 6.0 _
    У вас тогда станут доступны элементы MAPISession MAPIMessages и вы можете поместить их на форму _
    Предварительно добавить в ОС msmapi.ocx и зарегистрировать ее
 
    'SysCmd acSysCmdSetStatus, "Отправка письма на " & Trim(fld_Emailpost.Value)
    
    Me.MAPIMessages1.SessionID = Me.MAPISession1.SessionID
    Me.MAPIMessages1.Compose 'очистить буфер перед отсылкой
    Me.MAPIMessages1.RecipIndex = count
    
    '-собственно суть письма
    Me.MAPIMessages1.RecipAddress = Trim(fld_Emailpost.Value)
    Me.MAPIMessages1.RecipDisplayName = Trim(fld_Name.Value) 'E-mail или имя Адресата из адресной книги
    Me.MAPIMessages1.MsgSubject = sSubj 'Тема
    Me.MAPIMessages1.MsgNoteText = "Здравствуйте, " & Trim(fld_Name.Value) & "!" & vbNewLine & vbNewLine & sTextMess 'Текст вашего письма
    Me.MAPIMessages1.Send False '-и это письмо сразу отправляется Используя False в методе Send, вы запрещаете показ окна "Создание нового письма".
    'Me.MAPIMessages1.Send True
    'Me.MAPIMessages1.Save '-и это письмо лежит у вас в исходящих НЕ РАБОТАЕТ!

Если требуется могу скорректировать в работающую процедуру без моих перс переменных и значений.
4 фев 19, 13:05    [21801210]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
Stanislav P
Member

Откуда: Сочи
Сообщений: 96
kulib, msmapi.ocx регистрировал на обеих проблемных системах?
Куда клал файл в Win x64?
Сопутствующие DLL имеются на проблемных компютерах?
Напрямую текстом задавал username и password?
5 фев 19, 09:16    [21801704]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Stanislav P
kulib, msmapi.ocx регистрировал на обеих проблемных системах?
Конечно
Stanislav P
Куда клал файл в Win x64?
Пробовал и в System32 и в SysWow64 (но он же и там и там сразу появляется). Регистрировал regsvr32
Stanislav P
Сопутствующие DLL имеются на проблемных компютерах?
Какие именно?
Stanislav P
Напрямую текстом задавал username и password?
Да конечно, без изменений результата

Для чистоты эксперимента удалили регистрацию msmapi.ocx и заново последовательно с пробой запуска попробовал зарегить ее сначала в SysWow64, потом после того как это не изменило ничего, удалил регистрацию и зарегил в System32. но толку никакого

P.S. И почему-то она не появляется после регистрации в HKEY_CLASSES_ROOT\CLSID ???
5 фев 19, 12:51    [21801868]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
Stanislav P
Member

Откуда: Сочи
Сообщений: 96
kulib,

А на Win x64 используется The Bat x64?
6 фев 19, 14:59    [21802744]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Stanislav P
kulib,

А на Win x64 используется The Bat x64?

Win 10 x32, TheBat 7.4 x32, MSO 2010 x32 (ACCESS) - всё работает нормально
Win 10 x64, TheBat 7.4 x64, MSO 2010 x32 (ACCESS) - не работает как надо "Login has failed"
Win XP x32 SP3, TheBat 7.4 x32, MSO 2003 x32 (ACCESS) - не работает как надо "Login has failed"
6 фев 19, 19:50    [21803050]     Ответить | Цитировать Сообщить модератору
 Re: MAPI проблема с SignOn - Login has failed  [new]
kulib
Member

Откуда: Москва
Сообщений: 144
Stanislav P
kulib, msmapi.ocx регистрировал на обеих проблемных системах?
Куда клал файл в Win x64?
Сопутствующие DLL имеются на проблемных компютерах?
Напрямую текстом задавал username и password?

Всё это делал, регистрировал, проверял регистрацию, менял расположение файла. напрямую текстом задавал и юзера и пароль. Не помогало.
Потом сменил запускаемую версию почтовика TheBat с 64-й на 32х и ошибка в Sing.On успешно исчезла!
Но всё равно отправка письма не отрабатывает зараза. Теперь на Win10 (при условии задействования TheBat32) мы спотыкаемся на самом последнем шаге MAPIMessages1.Send

Ошибка "Unspecified Failure Send Occurred" что напрочь не дает даже подумать в какую-нибудь сторону для решения!

Stanislav P
kulib, есть подозрение, что используется x86 COM-объект, а система x64. Из-за этого скорее всего проблема и возникает.

Действительно подозрения Stanislav P подтверждаются. Но вопрос "что делать" всё таки остается. ведь MSMAPI64 вроде нету? Или есть?

P.S. Но на Win10-32 всё работает.
22 мар 19, 14:03    [21840758]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить