Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как отправить письмо и указать тему, текст сообщения


Мужик работает на участке около своего дома. Из соседнего дома выходит его соседка-блондинка, открывает свой почтовый ящик, заглядывает туда, захлопывает и убегает обратно в дом. Немного погодя, соседка выбегает снова, заглядывает в почтовый ящик и снова убегает обратно. Когда все повторяется в третий раз, мужик не выдерживает:
- В чем дело? Что-нибудь случилось?
- Это точно, что что-то случилось. Мой дурацкий компьютер все время сообщает: "Уou've got mail"

Для отправки письма с помощью зарегистрированого клиента используется функция Windows - ShellExecute, где в качестве аргумента передается строка протокола Mailto. Для этого сделайте следующее:

  1. В разделе uses подключите ShellAPI
  2. В обработчике OnClick метки или клавиши введите следующий код.

    ShellExecute(Handle, 'open', 'mailto:lalala@lala.ru?par1=value1&par1=value1&...',
    nil, nil, SW_SHOWNORMAL);
    

Третий параметр функции ShellExecute() - это строка в соответствии с протоколом mailto и правилами оформления URL:

mailto:
тип протокола (может быть http: в этом случае оставшая URL и параметры запроса).
lalala@lala.ru
адрес получателя, можно включать несколько адресов, разделяя из символом ";"
?
разделитель параметров от адреса
par1=value1
имя параметра и его значение
&
разделитель параметров

Протокол Mailto имеет следующую форму.


MAILTO:Recipients&Parameters

  • Поле Recipients может быть пустым, одиночным адресом и состоять из нескольких адресов, разделенных символом ";"
  • Поле Parameters дополнительно и если оно есть то должно быть отделено символом "&". Параметры должны появляться в форме пары name/value. Следующий список описывает возможные параметры:



  • PARAMETER DESCRIPTION
    

    CC=
    Carbon copy (дополнительные получатели)
    BCC=
    Blind carbon copy (дополнительные получатели, адреса которых не показываются остальным получателям)
    SUBJECT=
    Subject text (тема)
    BODY=
    Body text (текст)

Все данные указываемые в параметрах должны быть так называемые Internet safe characters. Используййте %0d для символа перевод строки (LF), %20 для пробела и так далее.

Пример:


mailto:email1;email2&cc=email3?subject=Это%20тема& 
body=это%20текст%20письма%0dЭто%20другая%20строка 

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay