1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
procedure TForm1.zipmail(grid : TStringGrid; msgmail: TIdMessage);
var
k,nbre:Integer;
nomfichier, nomzip, dossierfichier : String;
host, port, user, pwd, exped, desti, corp, etude : string;
//Ini4 : TIniFile;
//archiver : TZipForge;
begin
// UPDATE DU FICHIER POUR STOCKER LA DATE DU FICHIER LE PLUS RECENT
Ini1:=TIniFile.Create(repini+'CONFIG.INI');
Ini1.WriteString('LIMIT','DATETIME',grid.Cells[0,0]); // dateheure fichier
Ini1.WriteString('LIMIT','NOM',grid.Cells[1,0]); // nom fichier
Ini1.WriteString('LIMIT','TAILLE',grid.Cells[2,0]); // taille
Ini1.WriteString('LIMIT','PENETRATION',grid.Cells[3,0]); // pénétration
Ini1.Free;
// on parcourt Tstringrid
For k:=0 To grid.rowcount-1 Do
begin
//************************************************************
// CREATION DU FICHIER ZIP AVEC LE FICHIER PDF
//************************************************************
// creation de l instance de TZipForge class
archiver := TZipForge.Create(nil);
try
with archiver do
begin
// compteur de fichier Zip
n_zip := n_zip+1;
Edit18.Text:= IntToStr(n_zip);
// recupere le nom du fichier sans l extension .pdf pour nommé le fichier zip
nomfichier := grid.Cells[1,k];
nbre := Pos('.',nomfichier);
nomzip := Copy(nomfichier,1,nbre);
// creation du nom du fichier zip
FileName := repdrop+nomzip+'zip';
// ouverture du fichier zip
OpenArchive(fmCreate);
// je defini le repartoire pour ajouter le fichier
// pour ne pas avoir arborescence jusqu au fichier pdf à ziper
dossierfichier := grid.Cells[4,k];
BaseDir := dossierfichier;
// ajout du fichier pdf
AddFiles(nomfichier);
// fermeture du fichier zip
CloseArchive();
end; // With archiver do
except
on E: Exception do
begin
Writeln('Exception: ', E.Message);
// Wait for the key to be pressed
Readln;
end; // Try except
//*******************************************************
// CREATION DE L EMAIL AVEC LE FICHIER ZIP EN PIECE JOINT
//*******************************************************
// RECUPERATION DES DONNEES POUR LES MAILS DANS LE FICHIER CONFIG.INI
//[Erreur] Unit1.pas(349): 'END' attendu(e) mais identificateur 'Ini2' trouvé(e)
Ini2:=TIniFile.Create(repini+'CONFIG.INI');
host:=Ini2.ReadString('MAIL','HOST','na host'); // HOST
port:=Ini2.ReadString('MAIL','PORT','na port'); // PORT
user:=Ini2.ReadString('MAIL','USERNAME','na username'); // USERNAME
pwd:=Ini2.ReadString('MAIL','PASSWORD','na password'); // PASSWORD
exped:=Ini2.ReadString('MAIL','EXPEDITEUR','na expediteur'); // EXPEDITEUR
desti:=Ini2.ReadString('MAIL','DESTINATAIRE','na destinataire'); // DESTINATAIRE
Ini2.Free;
// ENTETE DU MAIL
msgmail.Clear; //Efface l'entête et le corps du message
msgmail.From.Text :=exped; //Adresse email de l'expediteur
msgmail.ReplyTo.EMailAddresses:=exped; //Adresse email où le destinataire pourra répondre
msgmail.Recipients.EMailAddresses:=desti; //Adresse email du destinataire
msgmail.Date:=Date; //Date de l'envoi du message
etude := Edit17.Text;
msgmail.Subject:='ESCRIBE ECG. Etude : '+etude; //Sujet du message
msgmail.Priority:=mpNormal; //Priorité du message
corp := 'ESCRIBE ECG message. Pièce jointe'+nomzip+'.zip';
msgmail.Body.Text := corp; //Corps du message
// PIECE JOINTE DU MAIL LE FICHIER ZIP
TIdAttachment.Create(msgmail.MessageParts,repdrop+nomzip+'.zip'); //Attache le fichier
// CONNEXION AU SERVER SMTP
srvsmtp.AuthenticationType:=atLogin; //Type d'authentification
srvsmtp.Host:=host; //Hôte
srvsmtp.Port:=strtoint(port); //Port (par exemple 25)
srvsmtp.UserName:=user; //Nom d'utilisateur
srvsmtp.Password:=pwd; //Mot de passe
srvsmtp.Connect; //Connexion
// [Erreur] Unit1.pas(380): 'END' attendu(e) mais 'TRY' trouvé(e)
try
srvsmtp.Send(msgmail); //Envoi du message
n_mail := n_mail+1;
Edit19.Text:= IntToStr(n_mail);
finally
srvsmtp.Disconnect; //Déconnexion
// [Erreur] Unit1.pas(386): '.' attendu(e) mais ';' trouvé(e)
end; // Try finally
Sleep(3000);
// [Avertissement] Unit1.pas(389): Texte après le 'END.' final ignoré par le compilateur
End; // For
// RELECTURE DU FICHIER INI AVEC LES DONNEES SUR LE FICHIER LE RECENT CONNU
Ini3:=TIniFile.Create(repini+'CONFIG.INI');
Edit4.Text:=Ini3.ReadString('LIMIT','DATETIME','na datetime'); // dateheure fichier
Edit5.Text:=Ini3.ReadString('LIMIT','NOM','na nom fichier'); // nom fichier
Edit6.Text:=Ini3.ReadString('LIMIT','TAILLE','na taille'); // taille
Edit7.Text:=Ini3.ReadString('LIMIT','PENETRATION','na penetration'); // pénétration
Ini3.Free;
End; // Procedure |
Partager