You are not logged in.
Pages: 1
It works! Thank you A.B!!
I have a function that sends email. When I compile the project for widows, the email is sent correctly. But when I compile for Linux, I come across the following error:
EOpenSslNetTls {LastError:1,OpenSsl:"1010117F",Message:"TOpenSslNetTls.AfterConnection connect: OpenSSL 1010117F error 1 [SSL_ERROR_SSL (error:1416F086:SSL routines:tls_process_serve r_certificate:certificate verify failed) (unable to get local issuer certificate #20)]"} [TAppRestHttpSrv8081v1THttpSrvRe] at 6ea87f 00000000129308CA EXC ENetSock {Message:"TCrtSocket.DoTlsAfter: TLS failed [EOpenSslNetTls TOpens 6c922f
In the email sending settings, I set TLS to 1. Am I missing something?
The port 465 is not blocked. I execute on Delphi and it works, but when I execute on Lazarus don't.
I implemented the email service on my project in Delphi for Windows and it works:
function TEmailService.Send : boolean;
var
vContent: RawUtf8;
begin
vContent := MergeTemplate;
ValidaParametros;
with FEmailSettings do
Result := SendEmail(
Host,
User,
FEmailTo,
MimeHeaderEncode(StringToUtf8(FTemplate.S['Assunto'])),
Utf8ToWinAnsi(vContent),
Headers,
User,
Pass,
Port,
TextCharSet,
TLS);
end;
But now I'm using a version of same project in Lazarus for linux and facing an issue, I guess it's because of missing lib:
ESendEmail {Message:"Command failed for teste@microprocess.com.br at mail.microprocess.com.br:465 [Undefined Error]"} [TAppRestHttpSrv8083v1THttpSrvRe] at 49f1e5
What do I need to do or wich files do I need to implement SendEmail in my Lazarus for Linux version?
I have a function whose parameter is filled with a json from a request:
function TEventoService.AddColeta(const pAmostraDados: TDTOEventoColeta): TServiceCustomAnswer;
dto:
TDTOEventoColeta:
TDTOEventoColeta = packed record
NumeroAmostra: RawUtf8;
PostoId: Int64;
end;
The json sent:
[{
"NumeroAmostra": "0101",
"PostoId": 1
}]
When I compile this project for Windows64 in Lazarus, and run the application, it works correctly. But if I compile it for Linux64 in Lazarus, the json is not passed to the function.
When I insert an additional property in my dto:
TDTOEventoColeta = packed record
NumeroAmostra: RawUtf8;
PostoId: Int64;
Dummy: RawUtf8;
end;
And I compiled it for Linux64, it passed the json correctly to the function.
Can someone explain to me what happens?
I'm trying to migrate my code from Delphi to Free Pascal and I'm facing the chalange of make the CopyRecord metod from System in Delphi to Free Pascal.
I have the const pSolicitacao: TDTOSolicitacao and the var vSolicitacao: TDTOSolicitacao;
In my code I have to copy pSolicitacao to vSolicitacao because my function GetPosto is gonna change values from the record:
function TSolicitacaoService.Add(const pSolicitacao: TDTOSolicitacao): TServiceCustomAnswer;
var
vSolicitacao: TDTOSolicitacao;
begin
CopyRecord(@vSolicitacao, @pSolicitacao, TypeInfo(TDTOSolicitacao));
if not GetPosto(vSolicitacao) then
begin
Result := ReturnRecordNotFound('Posto não encontrado.');
Exit;
end;
etc...
end;
Anyone to help me with this migration?
Pages: 1