Problème pour développer un service
Bonjour,
Je tente de transposer un code vers un service.
J'observe que je dois modifier certains algorithmes comme par exemple:
Code:
1 2
| renamefile('ok.ini','nok.ini');
renamefile(PChar(ExtractFilePath(ParamStr(0)))+'ok.ini',PChar(ExtractFilePath(ParamStr(0)))+'nok.ini'); |
J'ai par contre encore un problème avec une tentative d'envoi d'email:
Ce code n'est pas accepté:
Code:
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
| var
//FileNames : string;
Result : boolean;
begin
try
Result := False;
//Setup SMTP smtphost, emailport, mailfrom, mailto, mailsubj, mailbody
SMTP := TIdSMTP.Create(nil);
SMTP.Host := smtphost;
SMTP.Port := StrToInt(emailport); //Default email port
MailMessage.From.Address := mailfrom;
MailMessage.Recipients.EMailAddresses := mailto+','+mailcc;
MailMessage.Subject := mailsubj;
MailMessage.Body.Text := mailbody;
//Send email
try
try
SMTP.Connect;
SMTP.Send(MailMessage);
Result := True;
except
on E:Exception do
begin
ShowMessage('Cannot send E-Mail: ' + E.Message);
Result := False;
end;
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
except
on E : Exception do
begin
ShowMessage('Error in the function SendEmailDelphi: ' + E.Message);
Result := False;
end;
end; |
J'ai tenté l'appel de cette procédure dans le service:
Code:
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
| var
SMTP: TIdSMTP;
MailMessage: TIdMessage;
//FileNames : string;
Result : boolean;
begin
try
Result := False;
//Setup SMTP smtphost, emailport, mailfrom, mailto, mailsubj, mailbody
SMTP := TIdSMTP.Create(nil);
SMTP.Host := smtphost;
SMTP.Port := StrToInt(emailport); //Default email port
MailMessage.From.Address := mailfrom;
MailMessage.Recipients.EMailAddresses := mailto+','+mailcc;
MailMessage.Subject := mailsubj;
MailMessage.Body.Text := mailbody;
//Send email
try
try
SMTP.Connect;
SMTP.Send(MailMessage);
Result := True;
except
on E:Exception do
begin
ShowMessage('Cannot send E-Mail: ' + E.Message);
Result := False;
end;
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
except
on E : Exception do
begin
ShowMessage('Error in the function SendEmailDelphi: ' + E.Message);
Result := False;
end;
end; |
mais sans résultat :-(
Je ne sais pas non plus comment déboguer un service, sauf en l'installant pour le tester... si vous avez des suggestions...
Merci d'avance ;-)
PhilLu
MonObjet.create try finally
Bonjour
Par principe chaque fois que c'est possible
Code:
1 2 3 4 5 6 7
|
MonObjet :=TMonObjet.create
try
//mon code de la mort
finally
MonObjet.free
end; |
Ainsi quoi qu'il arrive mon objet est libéré, c'est d'autant plus important qu'on travaille sur du mail en réseau qui peux ne pas aboutir pour tout un tat de bonnes et mauvais raisons.
Crldt
Citation:
Envoyé par
PhilLU
De fait Cirec a parfaitement raison.
Ce code fonctionne maintenant parfaitement:
Code:
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
| procedure emailSend(Sender: TObject);
begin
//Setup SMTP smtphost, emailport, mailfrom, mailto, mailsubj, mailbody
SMTP := TIdSMTP.Create(nil);
SMTP.Host := smtphost;
SMTP.Port := StrToInt(emailport);
MailMessage := TIdMessage.Create(nil);
MailMessage.From.Address := mailfrom;
MailMessage.Recipients.EMailAddresses := mailto+','+mailcc;
MailMessage.Subject := mailsubj;
MailMessage.Body.Text := mailbody;
//Send email
try
SMTP.Connect;
SMTP.Send(MailMessage);
except
// Log blabla
end;
if SMTP.Connected then
begin
SMTP.Disconnect;
MailMessage.free;
SMTP.free;
end;
end; |
Merci pour vos réponses ;-)
:ccool:
PhilLu