Witam
Po burzliwej i deszczowej nocy spędzonej przy kompie, lekko rozkładam ręce. Otóż napisałem kod który pozwala mi wysyłać emaile na podane przeze mnie adresy ale z jednakową treścią z komponentu Richedit. OK działa, jednak zorientowałem się wieczorem, ze nie na tym rzecz polega.
Rzecz polega na tym, aby wysyłać pod różne adresy, różne wiadomości jednocześnie.
Tak jak wspominałem we wcześniejszych postach, musze napisać program który będzie wysyłał raporty o różnej treści do różnych pracowników ze swoimi adresami.
Jak wygląda sytuacja w moim programie:
Mam tabelę DBGrid, która mi wyświetla rekordy z IBX-owych komponentów, nauczyłem się zapytań SQL. Pomimo, że nie jestem programista i pewnie nigdy nie zostanę, tylko zwykłym kurierem, podoba mi się to. Uzywam bazę Firebird na podstawie tutejszych postów.
Tabela:
| ID_prac | Nazwisko | Imie | Email | Raport |
| 1 | Kowalski | Jan | [email protected] | 35 przesyłek wysłanych |
| 2 | Nowak | Paweł | [email protected] | 14 na jutro do wysyłki |
itd.
itd.
Rekordów będzie sporo, nawet kilkaset, ale danym dniu może być tylko kilkadziesiąt. Teraz o co chodzi?
Chodzi o to aby za pomocą Buttona, w której mam procedure wysyłania emaila przez idSMTP i idMessage wysłac jednocześnie do tych pracowników pod ich adresy odpowiednie ich raporty.
Męczyłem to całą noc, a teraz ledwo widzę, bo mi się oczy kleją i nie potrafię tego zrobić. Próbowałem coś z pętlą Repeat...Until, ale nic nie idzie.
Proszę Was, jak to zrobić, aby poniższy kod wysyłał emaile z tymi raportami do odpowiednich osób za pomocą poniższego kodu? Ja już nie daję rady. Siedze teraz na urlopie specjalnei do jutra. Szef mi dał wolne na napisanie tego programu i tylko to mi już zzostało. Pomocy. [browar]
Kod do wysyłania poczty:
procedure TForm1.Button1Click(Sender: TObject);
var
j:integer;
begin
try
idMessage1.CharSet:='charset="windows-1250"'; //ustawiamy kodowanie
idMessage1.ContentTransferEncoding:='8bit'; // przesyłanie 8bitowe
idMessage1.ContentType:='text/html'; // przesyłamy tekst
idMessage1.Body:=Richedit1.Lines; // treść maila
// ustawienia wiadomości
idMessage1.From.Address := 'xxx'; // od kogo
idMessage1.From.name := 'Oskar';
idMessage1.Subject := Edit1.Text;
idMessage1.Recipients.EMailAddresses :=Edit2.Text;
// weryfikacja
idSMTP1.UserName := 'xxx';
idSMTP1.Password := 'xxx';
idSMTP1.Host := 'xxx';
//wpisz gdy serwer nie wymaga uwierzytelnienia
idSMTP1.AuthenticationType:=atNone;
//wpisz gdy serwer wymaga uwierzytelnienia (zalecane)
idSMTP1.AuthenticationType:=atLogin;
idSMTP1.Connect;
idSMTP1.Send(idMessage1);
idSMTP1.Disconnect;
// ShowMessage('Mail został wysłany');
except
Application.MessageBox('Trwa wysyłanie raportów. Poczekaj chwilkę...','Raport dzienny',
MB_IconError or MB_OK);
end;
end;