#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 будет препятствовать использованию хорошо работающего протокола? Маркетинговая стратегия для продвижения собственных продуктов вместо этого?