Voici l'intégralité de mon script, je ne vois pas ce qui force l'envoie de l'e-mail.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, StrUtils, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdMessageClient, IdSMTP, Psock, NMsmtp;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
Button1: TButton;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Uses
IniFiles, FileUtil;
Function strtotstr(const str: string): TStringList;
var
tstr: TStringList;
begin
tstr := TStringList.Create;
tstr.Text := StringReplace(str, ' ', sLineBreak, [rfReplaceAll]);
Result := tstr;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
inifile : TIniFile;
nomfic : String;
writfic : String;
lengfic : String;
excfic : String;
erreur : String;
mel : String;
melrep : String;
melsuj : String;
melport : String;
melport2 : Integer;
melserv : String;
error1 : String;
error2 : String;
error3 : String;
error4 : String;
error5 : String;
error6 : String;
error7 : String;
error8 : String;
error9 : String;
error10 : String;
impos : String;
fic : TextFile;
fic2 : TextFile;
fic3 : TextFile;
exc : TextFile;
err : TextFile;
st : String;
st2 : String;
i : Integer;
IdMessage : TiDMessage;
IdSMTP : TiDSMTP;
begin
inifile :=
TIniFile.Create(NormalDir(ExtractFilePath(Application.ExeName)) +
'arcs.ini');
nomfic :=
NormalDir(inifile.ReadString('Fichier', 'rep','')) +
IniFile.ReadString('Fichier', 'Fich', '');
writfic :=
NormalDir(inifile.ReadString('Fichier', 'rep','')) +
IniFile.ReadString('Fichier', 'writ', '');
lengfic :=
NormalDir(inifile.ReadString('Fichier', 'rep','')) +
IniFile.ReadString('Fichier', 'wc', '');
erreur :=
NormalDir(inifile.ReadString('Fichier', 'rep','')) +
IniFile.ReadString('Fichier', 'err', '');
excfic :=
NormalDir(inifile.ReadString('Fichier', 'rep','')) +
IniFile.ReadString('Fichier', 'excep', '');
mel := inifile.ReadString('Mail', 'meldest','');
melrep := inifile.ReadString('Mail', 'melrep','');
melsuj := inifile.ReadString('Mail', 'melsujet','');
melport := inifile.ReadString('Mail', 'smtpport','');
melserv := inifile.ReadString('Mail', 'smtpserver','');
error1 := inifile.ReadString('Erreur', 'err1','');
error2 := inifile.ReadString('Erreur', 'err2','');
error3 := inifile.ReadString('Erreur', 'err3','');
error4 := inifile.ReadString('Exception', 'err4','');
error5 := inifile.ReadString('Exception', 'err5','');
error6 := inifile.ReadString('Exception', 'err6','');
error7 := inifile.ReadString('Exception', 'err7','');
error8 := inifile.ReadString('Exception', 'err8','');
error9 := inifile.ReadString('Exception', 'err9','');
error10 := inifile.ReadString('Exception', 'err10','');
impos := inifile.ReadString('Imposs', 'impo','');
inifile.Free;
if nomfic = 'C:\' then begin
ShowMessage('Fichier pas trouvé');
Exit;
end;
if not FileExists(nomfic) then begin
ShowMessage('Fichier ' + NomFic + ' introuvable');
exit;
end;
AssignFile(fic, nomfic);
Reset(fic);
AssignFile(fic2, writfic);
Rewrite(fic2);
while not Eof(fic) do begin
Readln(fic, st);
st2 := MidStr(st, 42, length(st));
writeln(fic2, st2);
end;
Reset(fic2);
AssignFile(fic3, lengfic);
Rewrite(fic3);
(Memo1.Lines.LoadFromFile(writfic));
for i := 0 to Memo1.Lines.Count do begin
if (Memo1.Lines[i] = error1) or
(Memo1.Lines[i] = error2) or
(Memo1.Lines[i] = error3) then begin
writeln(fic3, Memo1.Lines[i]);
writeln(fic3, Memo1.Lines[i+1]);
end;
end;
CloseFile(fic3);
Reset(fic3);
AssignFile(err, erreur);
Rewrite(err);
AssignFile(exc, excfic);
Rewrite(exc);
(Memo2.Lines.LoadFromFile(lengfic));
//Copie des lignes contenant les erreurs dans les fichiers correspondants
For i := 0 to Memo2.Lines.Count do begin
if(Pos(error4, Memo2.Lines[i])>0) or
(Pos(error5, Memo2.Lines[i])>0) or
(Pos(error6, Memo2.Lines[i])>0) or
(Pos(error7, Memo2.Lines[i])>0) or
(Pos(error8, Memo2.Lines[i])>0) or
(Pos(error9, Memo2.Lines[i])>0) or
(Pos(error10, Memo2.Lines[i])>0) then
Memo3.Lines.Append(Memo2.Lines[i-1] + ' ' + Memo2.Lines[i]) else
Memo4.Lines.Append(Memo2.Lines[i])
end;
for i := 0 to Memo3.Lines.Count do begin
writeln(exc, Memo3.Lines[i]);
end;
for i := 0 to Memo4.Lines.Count do begin
if(Pos(impos, Memo4.Lines[i])>0) then
Memo5.Lines.Append(Memo4.Lines[i-1]+ ' ' + Memo4.Lines[i]);
end;
for i := 0 to Memo5.Lines.Count do begin
Writeln(err, Memo5.Lines[i]);
end;
CloseFile(fic);
CloseFile(fic2);
CloseFile(fic3);
CloseFile(exc);
CloseFile(err);
IdMessage := TIdMessage.Create(nil);
IdMessage.From.Address := melrep; //@ émetteur
IdMessage.ReplyTo.Add.Address := melrep; //@ de réponse et / ou destinataire
IdMessage.Recipients.Add.Address := mel;
IdMessage.Subject := melsuj; //Sujet du message
IdMessage.ContentType := 'text/plain'; // Message texte
IdMessage.Body := Memo5.Lines; //corps du message
//Envoi du message
IdSMTP := TIdSMTP.Create(nil);
melport2 := StrToInt(melport);
IdSMTP.Port := melport2; //port smtp
IdSMTP.Host := melserv; //serveur smtp
//Connexion et envoi du message
Try
IdSMTP.Connect;
IdSMTP.Send(IdMessage);
finally
IdSMTP.Disconnect;
IdSMTP.Free;
IdMessage.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
end.
@+