Отправка почты Lazarus (SMTP)
Модератор: Модераторы
Отправка почты Lazarus (SMTP)
Надо написать программку, которая по результатам запросов к БД отсылала письма по необходимым адресам с определенным текстом (и/или вложением). Каким компонентом это можно сделать. Посоветуйте. Я еще пока новичек в Lazarus, но небольшой опыт уже есть.
1. OS - Windows
2. Lazarus 0.9.25
1. OS - Windows
2. Lazarus 0.9.25
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Всем большое спасибо. Буду копаться. Вот если бы еще кто мне ответил по теме http://freepascal.ru/forum/viewtopic.php?t=3186 было бы совсем хорошо :0)
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
можно синапсис использовать http://synapse.ararat.cz
правда эти компоненты не визуальные
правда эти компоненты не визуальные
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Код: Выделить всё
uses ... smtpsend;
procedure TForm1.Button1Click(Sender: TObject);
var
smtp:TSMTPsend;
UserName, SmtpHost: AnsiString;
MailData: TStringList;
begin
UserName := 'b@b.com';
try
smtp := TSMTPsend.Create;
SmtpHost := '192.168.0.1';
Smtp.Login;
if Smtp.ESMTP = True then
begin
MailData := TStringList.Create;
MailData.Add('test');
SendTo(UserName, 'a@b.com', 'Ошибка',
SmtpHost, MailData);
MailData.Free;
end;
Smtp.Logout;
finally
FreeAndNil(smtp);
end;
end;
Это пример с использованием библиотеки синапс
-
Михаил Крамер
- новенький
- Сообщения: 73
- Зарегистрирован: 08.02.2008 13:26:40
Вопрос в эту тему. Покажите пожалуйста, как синапсом сформировать правильно MIME-сообщение без вложений и с вложениями. Я это делал так, но формировался только заголовок, ни текста, ни приложения у оптравленных писем не было:
Код: Выделить всё
program smtptst;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, smtpsend, mimemess, mimepart
{ you can add units after this };
const
addresses: array [1..3] of string = ('kmu2004@ya.ru', 'kmu2004@yandex.ru',
'kmu2004@narod.ru');
var
i: byte;
mess: TMimeMess;
part: TMimePart;
s: TStringList;
begin
mess:= TMimeMess.Create;
s:= TStringList.Create;
s.Add('Сообщение');
mess.Header.From:= 'FROM <FROMADDRESS@server.ru>';
mess.Header.Subject:= 'Subject';
mess.Header.ToList.Add('kmu2003@yandex.ru');
part:= mess.AddPartMess(s, Nil);
mess.AddPartTextFromFile('/home/user/aaa', part);
mess.EncodeMessage;
for i:= 1 to 3 do
if not SendToRaw('FROMADDRESS@server.ru', addresses[i], 'relay.provider.ru', mess.Lines, '', '') then
begin
Writeln('Error');
Readln;
end;
end.
Последний раз редактировалось Михаил Крамер 04.05.2008 14:55:21, всего редактировалось 1 раз.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Михаил Крамер писал(а):Я это делал так, но формировался только заголовок не было:
Уточните вопрос, а то не совсем ясно что имеется ввиду
-
Михаил Крамер
- новенький
- Сообщения: 73
- Зарегистрирован: 08.02.2008 13:26:40
Отправленные письма имели только заголовок, ни текста ни вложения не было.
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Этот код работает. Это немного измененный пример из документации http://synapse.ararat.cz/doku.php/public:howto:tmimepart
Добавлено спустя 7 минут 17 секунд:
Странно, что у вас не было текста. у меня результат действия Вашего примера был следующий
Код: Выделить всё
var
m:TMimemess;
p: TMimepart;
begin
m:=TMimemess.create;
try
p := m.AddPartMultipart('text', nil);
m.AddPartTextFromFile('c:\boot.ini',p);
m.header.from:='youraddress@somewhere.com';
m.header.tolist.add('You@somewhere.com');
m.header.subject:='test message';
m.EncodeMessage;
//if you wish to send it by SMTP too, then:
//SendToRaw('youraddress@somewhere.com', 'You@somewhere.com', 'your.smtp.server.com', m.lines, 'yourusername', 'yourpassword');
m.lines.savetofile('c:\log.txt');
finally
m.free;
end;
end; Добавлено спустя 7 минут 17 секунд:
Странно, что у вас не было текста. у меня результат действия Вашего примера был следующий
Код: Выделить всё
From: "FROM" <FROMADDRESS@server.ru>
To: kmu2003@yandex.ru
Subject: Subject
Date: Sun, 4 May 2008 17:28:58 +0400
MIME-Version: 1.0 (produced by Synapse)
X-mailer: Synapse - Pascal TCP/IP library by Lukas Gebauer
Content-type: message/rfc822
Content-Description: E-mail Message
Сообщение
