Как отправить Email, используя почтовую программу по умолчанию
uses SHELLAPI;
procedure AutoSendMail;
var
EMailDestinationString, SubjectString, Line1String,
Line2String, mailstring: string;
begin
EMailDestinationString := 'gbamber@bamber.com';
SubjectString := 'Message Subject';
Line1String := 'This is the first line';
Line2String := 'This is the second line';
// Можно использовать несколько адресов, разделяя их точкой с запятой
mailstring := 'mailto:' + EMailDestinationString +
'?subject=' + SubjectString +
'&body=' + Line1String +
'%0d' + Line2String;
if (ShellExecute(0, 'open', PChar(mailstring), '', '',
SW_SHOWNORMAL) <= 32) then
ShowMessage('Auto method failed.');
end;
Перевод:
Это программное обеспечение Delphi, использующее единицу SHELLAPI для отправки электронной почты с помощью по умолчанию клиента электронной почты на системе. Процедура AutoSendMail устанавливает детали электронной почты, включая адрес назначения, тему и текст тела, а затем строит URI в формате ссылки mailto.
Функция ShellExecute используется для открытия клиента электронной почты с построенным URI как параметром командной строки. Если клиент электронной почты не может открыться или электронная почта не может быть отправлена по какой-либо причине, отображается сообщение об ошибке с помощью ShowMessage.
Вот разбивка кода:
Процедура устанавливает четыре строковые переменные: EMailDestinationString, SubjectString, Line1String и Line2String, чтобы хранить адрес назначения, тему, первую строку текста и вторую строку текста соответственно.
Переменная mailstring строится путем конкатенации следующих компонентов:
mailto: - префикс протокола для ссылки mailto
EMailDestinationString - адрес назначения электронной почты
?subject=SubjectString - тема электронной почты
&body=Line1String%0dLine2String - текст тела, разделенный символом новой строки (%0d)
Функция ShellExecute вызывается с параметрами:
0 - идентификатор процесса (не используется в этом случае)
'open' - действие для выполнения (открытие клиента электронной почты)
SW_ SHOWNORMAL - состояние отображения окна (отображается нормально)
Если функция ShellExecute возвращает значение, равное или меньше 32, отображается сообщение об ошибке с помощью ShowMessage.
Вот некоторые предложения и альтернативы:
Обработка ошибок: Рассмотрите добавление более конкретной обработки ошибок для обработки различных типов ошибок, которые могут возникнуть при отправке электронной почты.
Совместимость: Это код использует единицу SHELLAPI, которая может не работать на всех системах или в определенных условиях (например, когда по умолчанию клиент электронной почты не установлен). Рассмотрите использование более robust метода для отправки электронной почты, такого как библиотека SMTP.
Безопасность: Обратите внимание, что строительство ссылки mailto с данными пользователя может потенциально привести к уязвимостям безопасности. Рассмотрите валидацию и очистку входных данных перед использованием их в построенном URI.
Альтернативное решение: Вместо использования ShellExecute можно использовать отдельную библиотеку или компонент для отправки электронной почты, такие как Indy или Synapse, которые предоставят более robust и гибкие возможности для отправки электронной почты.
В статье описывается способ отправки электронной почты с помощью программы по умолчанию, используя язык Delphi и ShellAPI.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.