Delphi Unicode JCL MAPI Проблема с Mozilla Thunderbird - PullRequest
1 голос
/ 13 сентября 2011

У меня есть проблема, которая возникает только в Unicode Delphi при использовании JCL (я убедился, что использовал новейший) код MAPI.

Я получаю общий сбой MAPI

  TmpEmail := TjclEmail.Create;

  TmpResolve := False;
  try
    TmpResolve := TmpEmail.ResolveName(TmpStr_Name, TmpStr_Email, True);
  except
    // new code for Delphi unicode... Also gives mapi failure
  end;
  if TmpResolve then
    TmpEmail.Recipients.Add(TmpStr_Email)
  else
    TmpEmail.Recipients.Add('smtp:' + TmpStr_Email)
  ;
  TmpEmail.Recipients[0].Name := TmpEmail.Recipients[0].Address;

  TmpEmail.Subject := 'bla bla';
  TmpEmail.Send(True);

Этокод работает Delphi 2007, тот же JCL, Thunderbird, но не при использовании, например, Delphi 2010. Я уже пытался применить то, что я мог, из общих обходных путей JCL / MAPI.Есть идеи?:)

1 Ответ

2 голосов
/ 04 февраля 2015

У меня была такая же проблема. В моем случае приложение работало с правами администратора, когда почтовый клиент работал в пользовательском контексте Windows по умолчанию.

Может быть, этот пост может помочь: Общая ошибка JclMapi mapi

Смотрите последний ответ. Цитата:

После борьбы с той же проблемой я обнаружил, что клиент MAPI должен работать в том же пользовательском контексте, что и сервер MAPI (почтовый клиент - Thunderbird в моем случае).

Однако, если вызов из приложения, запущенного с правами администратора (например, из приложения, запущенного в отладчике), вызовы MAPI завершатся ошибкой с кодом ошибки 2. Если и клиент, и почтовый клиент работают от имени администратора, все работает (но кто достаточно сумасшедший, чтобы запустить почтовый клиент в качестве администратора в эти дни?).

...