Как создать почту с помощью TSendMail?

#delphi #sendmail #delphi-10.4-sydney

Вопрос:

В приложении Delphi 10.4.2 VCL в Windows 10 я следовал TSendMail приведенному здесь примеру:

http://docwiki.embarcadero.com/CodeExamples/Sydney/en/TSendMail_(Дельфи)

… чтобы создать InternetSendMail1 действие в списке действий.

Но когда я выполняю этот код:

 var OK := InternetSendMail1.Execute;
CodeSite.Send('OK', OK);
 

ОК возвращается True .

Но ничего не происходит: электронная почта не открывается.

Мой почтовый клиент Thunderbird-это обычный зарегистрированный почтовый клиент MAPI, который отлично работает в течение многих лет: например, когда я нажимаю mailto ссылку, в Thunderbird создается новое электронное письмо и т. Д.

Итак, что я должен сделать, чтобы это InternetSendMail1 действие сработало?

РЕДАКТИРОВАТЬ: Я наконец понял, что на самом деле я хочу не отправлять письмо, а создать письмо с вложением, чтобы пользователь мог отредактировать его с получателем, телом и т. Д., А затем отправить его после завершения редактирования. Поэтому я изменил вопрос с «Как отправить письмо с помощью TSendMail?» на «Как создать письмо с помощью TSendMail?».

Комментарии:

1. Это работает для меня (Windows 7, 64-разрядная версия, Microsoft Outlook 2010, Delphi 10.3).

2. Вы используете Thunderbird с повышенными привилегиями и без своего тестового приложения Delphi?

3. Удивительно, но я не могу найти ссылку на MSDN для MapiSendMail … (У меня почти возникает ощущение, что MapiSendMail это не поддерживается в Windows 8 и более поздних версиях. Видишь docs.microsoft.com/en-us/previous-versions/windows/desktop/… )

4. Thunderbird не работает с повышенными привилегиями. Тем не менее, я нашел решение, которое работает и делает именно то, что я хочу: JclMapi.JclSimpleBringUpSendMailDialog('Subject', '', 'C:DocsTodo.txt');

5. «Использование простого MAPI не рекомендуется. Он может быть изменен или недоступен в последующих версиях Windows». — Но это работает в Windows 10 (JclMapi). Почему Microsoft будет препятствовать использованию хорошо работающего протокола? Маркетинговая стратегия для продвижения собственных продуктов вместо этого?