Архив метки: Synapse

Установка Synapse и отправка письма с вложением..

  • Скачиваем исходники с http://synapse.ararat.cz/doku.php/download
  • Копируем папку lib в расположение вашего проекта
  • В свойствах проекта Lazarus: Проект-Параметры проекта-Пути-Другие модули добавляем путь куда положили содержимое lib.

На этом все. Теперь достаточно после uses добавлять необходимые для использования компоненты. Вот так например выглядит простейший пример отправки письма с вложением.

function SendMail (Host, Subject, pTo, From , TextBody,
                HTMLBody, login,password,filename : string) : boolean;
var Msg : TMimeMess; // сообщение
    StringList : TStringList; // содержимое письма
    MIMEPart : TMimePart; // части сообщения (на будущее)
begin
    Msg := TMimeMess.Create; // создаем новое сообщение
//      IdealCharsets:=[CP1251];
//      Msg.Header.CharsetCode:='CP1251';
      StringList := TStringList.Create;
      try
        // Добавляем заголовки
        Msg.Header.Subject := Subject;// тема сообщения
        Msg.Header.From := From; // имя и адрес отправителя
        Msg.Header.ToList.Add(pTo); // имя и адрес получателя
        // создаем корневой элемент
//        MIMEPart := Msg.AddPartMultipart('alternative', nil);
          Msg.AddPartMultipart('', nil);
        if length(TextBody)=0 then
        // если формат HTML
          begin
            StringList.Text := HTMLBody;
            Msg.AddPartHTML(StringList, Msg.MessagePart);
          end
        else
        // если текстовый формат
          begin
            StringList.Text := TextBody;
            Msg.AddPartText(StringList, Msg.MessagePart);
          end;
          if filename<>'' then
            Msg.AddPartBinaryFromFile(filename,Msg.MessagePart);

        // Кодируем и отправляем
        Msg.EncodeMessage;
        // Отправляем.
        if smtpsend.SendToRaw(From,pTo,Host,Msg.Lines,login,password) then
            SendMail:=true
        else
            SendMail:=false;

     finally
       Msg.Free;
       StringList.Free;
     end;
end;