Все вроде как просто в Delphi введено ряд компонент которые значительно облегчают работу с и-нетом.
Один из таких компанентов является NMSMTP, преднозанченный для отправки почты. Прежде всего определимся что отсылать в нашем примере будем только текст,
на самом деле можно присоеденять файлы, это не заключает в себе ни какой сложности, посколько как мне кажется главное в нашем деле понять суть, а дальше само пойдет... :)
Расмотрим основные методы и свойства данного компонента:
Свойства и методы необходимые для работы с сервером
Название
Тип
Описание
Host
String
адрес smtp сервера
UserID
String
Пользователь smtp сервера
Connect
procedure
Производит подключение к серверу
Disconnect
procedure
Производит отсоединение от сервера
Connected
boolean
Отображает состояние login True- клиент подключен к серверу False- соответствено отключен от сервера
SendMail
procedure
Отправка сообщения
PostMessage
TMessage
Сообщение (Письмо по нашему)
Свойства и методы необходимые для работы с PostMessage
Название
Тип
Описание
FromAddress
string
e-mail отправителя
FromName
string
От кого письмецо имя владельца
ToAddress
string
e-mail получателя
ToCarbonCopy
string
e-mail кому пошлется копия данного сообщения
ToBlindCarbonCopy
string
e-mail кому пошлется копия копии данного сообщения
Subject
string
Тема письма
Body.Text
TString
Текст сообщения
Attachments.Text
string
Пути и имена прикрепленных файлов
LocalProgram
string
Имя программы с помощью которой было отправленно данное письмо
Date
string
Дата отправления
ReplyTo
string
e-mail адрес на который придет ответ
Вот вродебы и все теперь можно приступать к написанию программы...
1.Прожде всего создаем новый проект
2.Потом помещаем на форму Form1: Memo1:TMemo - для сообщения; Edit1:TEdit - для адреса отправителя; Edit2:TEdit - для имени отправителя; Edit3:TEdit - для адреса получателя; Edit4:TEdit - для Темы письма; Edit5:TEdit - для имя пользователя smtp сервера; Edit6:TEdit - для адреса smtp сервера; Button1:TButton - Для отправки сообщения;
Процедурки:
{Данная вызывается при показе формы}
procedure TForm1.FormShow(Sender: TObject);
var
str :PChar;
i :DWORD;
begin
i:=$100;
GetMem(str,i+1);
GetUserName(str,i); {Получаем имя пользователя компьютера}
Edit5.Text:=str;
FreeMem(str);
end;
{Данная вызывается при нажатиии кнопки Button1}
procedure TForm1.Button1Click(Sender: TObject);
begin
{Если мы подключены к серверу то разорвем соединение}
if NMSMTP1.Connected then NMSMTP1.Disconnect;
{Заполняем все необходимые поля для подключения к серверу}
NMSMTP1.UserID := Edit5.Text;
NMSMTP1.Host := Edit4.Text;
{Конектимся к серверу}
NMSMTP1.Connect;
{Если конект удачный то заполняем данные для сообщения}
if NMSMTP1.Connected then
begin
NMSMTP1.PostMessage.FromAddress := Edit1.Text;
NMSMTP1.PostMessage.FromName := Edit2.Text;
NMSMTP1.PostMessage.ToAddress.Text := Edit3.Text;
NMSMTP1.PostMessage.Subject := Edit4.Text;
NMSMTP1.PostMessage.ToCarbonCopy.Text := '';
NMSMTP1.PostMessage.ToBlindCarbonCopy.Text := '';
NMSMTP1.PostMessage.Body.Text := Memo1.Text;
{А сдесь можно указать имена приатаченых файлов
для этого нужно например
NMSMTP1.PostMessage.Attachments.Text:='c:\autoexec.bat';}
NMSMTP1.PostMessage.Attachments.Text := '';
NMSMTP1.PostMessage.LocalProgram := '';
NMSMTP1.PostMessage.Date:='';
NMSMTP1.PostMessage.ReplyTo:='';
{Отсылаем письмо}
NMSMTP1.SendMail;
{Отсоеденяемся}
NMSMTP1.Disconnect;
{Выдаем сообщение о том что все прошло отлично}
ShowMessage('Message send ok!');
end
else
{Выдаем сообщение о том что мы не приконектились к серверу}
ShowMessage('You need to connect before you can send your message');
end;