Вы можете использовать MAPI вместо (Messaging Applications Programming Interface
), что дает вам гораздо больший контроль над электронной почтой, и позволяет такие вещи, как вложения. Вы также можете выбрать, показывать ли пользовательское почтовое клиентское окно «создать» или добавить непосредственно в папку «Исходящие». (Исходящие функции обычно ограничены сейчас из-за изменений в безопасности Windows, особенно в том, что касается MS Outlook).
Самый быстрый и простой способ - использовать что-то вроде JEDI Code LibraryJCLEMail
. Это обертка SimpleMAPI, что делает его очень легким (код был взят из старого приложения, и был основан на выборку из демо JCL):
EMail := TJclEMail.Create;
try
EMail.Recipients.Add(AnsiString(EMailAddress), AnsiString(EMailName));
EMail.Subject := AnsiString(Subject);
EMail.Body := AnsiString(Body);
EMail.HtmlBody := False; // True if it's HTML email
// Send attachment if wanted
EMail.Attachments.Add(AnsiString(FileName));
EMail.Send(True); // True to show default email, false to add to outbox
finally
EMail.Free;
end;
Недостаток SimpleMAPI
является то, что он может быть коротким -term (хотя он все еще работает в Windows 7 64-bit и более ранних версиях, я не могу говорить для Windows 8). Согласно MSDN,
[Использование Simple MAPI не рекомендуется. Он может быть изменен или недоступен в последующих версиях Windows.]
Недостаток MAPI
является то, что он опирается на MAPI
клиента устанавливаются. К счастью, почти любое программное обеспечение, поддерживающее mailto
, должно поддерживать MAPI
; Например, Outlook делает это, и Mozilla Thunderbird.
Такая функциональность полностью зависит от клиента электронной почты используется, и они могут вести себя совершенно отличается от друг друга. Насколько мне известно, нет стандартов, кроме некоторых «де-факто» стандартов. –
'MAPI', вероятно, лучший способ отправить электронную почту с использованием клиента по умолчанию. Это позволяет лучше контролировать содержимое. JCL JEDI имеет 'JclMapi.pas', который представляет собой набор простых оболочек вокруг функциональности. См. [Этот ответ] (http://stackoverflow.com/a/7555895/62576) для получения дополнительной информации; сам вопрос касается электронной почты Lotus Notes, но связанный ответ относится к 'JclMAPI' и к паре его функциональных оболочек. –
Звучит для меня как начало ответа, @ Ken.Вопрос задает вопрос о том, как создать электронную почту, чтобы включить подпись с основным текстом, но не имеет необоснованного требования придерживаться плохо определенной методики «mailto», поэтому ответ «Использовать MAPI» хорош. –