Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

отправки E-mail c использованием почтовой программы [D5, WinXP]


Виталий Гаврилов ©   (2006-11-26 16:39:00) 

Не могли бы вы мне дать ссылку на исходник процедуры отправки E-mail по нажатию кнопки c  использованием преустановленной почтовой программы (bat, outlook и т.п.). Я работаю в дельфи 5 и у меня Indy не установлен.


Алхимик   (2006-11-29 21:14:00) [1]

> ASmtpServer??

ASmtpServer - строка, указывающая твой STMP сервер.
Например: smtp.yandex.ru
> Вроде бы нужно пользоваться почтовой программой? Или я что-
> то не понял?  :)

Нужна cdosys.dll (идёт в составе MS Outlook, вроде).
http://www.dlldll.ru/cdosys.dll_download.html


Виталий Гаврилов   (2006-11-29 20:17:00) [2]

ASmtpServer?? Вроде бы нужно пользоваться почтовой программой? Или я что-то не понял?  :)


Алхимик   (2006-11-29 12:49:00) [3]

> [0] Виталий Гаврилов ©   (26.11.06 16:39)
> Не могли бы вы мне дать ссылку на исходник процедуры отправки
> E-mail по нажатию кнопки c  использованием преустановленной
> почтовой программы (bat, outlook и т.п.). Я работаю в дельфи
> 5 и у меня Indy не установлен.

procedure SendEmail(ASmtpServer, AFrom, ATo, ASubject, ABody: string; AKindBody : boolean);
var
  Msg: variant;
begin
  Msg := CreateOleObject('CDO.Message');
  try
     Msg.BodyPart.Charset := 'windows-1251';
     Msg.From := AFrom;
     Msg. to := ATo;
     Msg.Subject := ASubject;
     if AKindBody then
        Msg.TextBody := ABody
     else
        Msg.HTMLBody := ABody;
     Msg.Configuration.Fields.Item[' http://schemas.microsoft.com/cdo/configuration/sendusing'].Value
        := 2;
     Msg.Configuration.Fields.Item[' http://schemas.microsoft.com/cdo/configuration/smtpserver'].Value
        := ASmtpServer;
     Msg.Configuration.Fields.Item[' http://schemas.microsoft.com/cdo/configuration/smtpserverport'].Value
        := 25;
     Msg.Configuration.Fields.Update;
     Msg.Send;
  except
     on E: EOleException do begin
        MessgDLG('Ошибка отправки письма.' + #13#10 + 'Сообщение: ' +
           E.Message, mtError, [mbOk], 0);
     end;
  end;
end;


Anatoly Podgoretsky   (2006-11-29 00:21:00) [4]

> Виталий Гаврилов  (28.11.2006 21:41:06)  [6]

Не делать литералы более 255 символов.


Виталий Гаврилов   (2006-11-28 21:41:00) [5]

Пишет String literals may have at most 255 elements что делать?? Прошу помочь?


Виталий Гаврилов   (2006-11-28 21:36:00) [6]

ShellExecute(Handle, 'open', 'mailto:email1;email2&cc=email3?subject=Это%20тема&body=это%20текст%20письма%0dЭто%20другая%20строка',nil, nil, SW_SHOWNORMAL);
Это текст формирующий письмо, скажите существуют ли ограничения по количеству строк, а то у меня текст письма большой, посоветуйте как можно выйти из положения? И еще вопрос а возможно (если возможно то как) сформировать письмо в виде html файла?


Anatoly Podgoretsky   (2006-11-26 17:50:00) [7]

> Виталий Гаврилов  (26.11.2006 17:38:03)  [3]

Ты все таки посмотрел бы протокол mailto: прежде чем так говорить.


Виталий Гаврилов   (2006-11-26 17:38:00) [8]

uses ShellApi;
{ ... }
ShellExecute(0, nil,' http://delphi.mastak.com',nil,nil,1);
ShellExecute(0, nil,'mailto:delphi@mastak.com',nil,nil,1);

Это понятно, но необходимо чтобы вводился именно определенный текст в сообщение. Например "Привет всем! как дела! Пока!"


guav   (2006-11-26 17:24:00) [9]

если требуется указать только кому сабж и текст сообщения, то есть ленивый, но рабочий способ - mailtoпротокол


Dmitrij_K   (2006-11-26 17:12:00) [10]

Тебе в гугл. Ищи MAPI.
А Indy можно установить самому.


Наверх

Титульная страница Поиск, карта сайта Написать письмо