On Sat, 13 Jan 2024 17:03:55 +0100 (CET), Michael Van Canneyt via lazarus <lazarus@lists.lazarus-ide.org> wrote:
>You could also use Synapse. I always prefer synapse over Indy. > So I have now verified that I cannot use Indy10 for email sending anymore :( ... I have used Indy since a very long time like 20 years or so when dealing with Internet accesses. So I am not used to other ways. Now I have looked around for valid examples which will work like my send function but using Synapse but the result is confusing. I have found your pdf document "Sending mails using Lazarus.pdf". But I am not clear as to how to map the Indy properties to Synapse... And the example's uses clause is not shown so I don't know what to put there... In fact I have looked for Synapse and in OnLine Package Manager I find Synapse_40.1, which I have installed via OLPM. But when looking through the packages in Lazarus I cannot find any match to synapse at all. What have I done wrong? Inside the pdf I found a link to http://synapse.ararat.cz/ but there seems to be only files from more than 10 years ago, how could they solve the recently encountered ssl problem? Could you (or someone else reading this) suggest a new SendSvnMessage function that will replace the following (snippets) but using Synapse (and say from where I can get synapse): uses ... IdSMTP, IdMessage, IdEMailAddress, IdIOHandler, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdExplicitTLSClientServerBase, IdMessageBuilder, ... type { TSvnUser } //Data from SVN user config is put here TSvnUser = class public LoginName, FullName, Email: string; end; { TSvnMessage } TSvnMessage = class private FSMTP: TIdSMTP; FSSLHandler: TIdSSLIOHandlerSocketOpenSSL; FMailMessage: TIdMessage; FMailServer: string; FMailLogin: string; FMailPwd: string; FMailPort: word; FMailUseSSL: boolean; FMailTimeout: integer; FSvnUsers: TSvnUsers; //A list of users (TSvnUser) and data ... function TSvnMessage.SendSvnMessage: boolean; var sSubject: string; i: integer; begin Result := false; try PrepareMessage; //Set up the SMTP transfer properties FSMTP.Port := FMailPort; FSMTP.Host := FMailServer; FSMTP.AuthType := satDefault; FSMTP.Username := FMailLogin; FSMTP.Password := FMailPwd; FSMTP.MailAgent := 'SVNMailer'; if FMailUseSSL then begin FSMTP.IOHandler := FSSLHandler; FSMTP.UseTLS := utUseImplicitTLS; FSSLHandler.Port := FMailPort; end; FSMTP.ConnectTimeout := FMailTimeout; //Now send message Log('Connecting to mailserver'); FSMTP.Connect; if FSMTP.Connected then begin Log('Sending message'); FSMTP.Send(FMailMessage); Log('Send done'); FSMTP.Disconnect(); Result := true; end; except on E: Exception do begin LogException('In SendSvnMessage = ' + E.Message); end; end; end; procedure TSvnMessage.PrepareMessage; var i: integer; Usr, Msg: string; SU: TSvnUser; MA: TIdEMailAddressItem; //<== Does Synapse have something like this? begin (*if Pos('<html>', FMailMessage.Body.Text) > 0 then FMailMessage.ContentType := 'text/html; charset=utf-8' else FMailMessage.ContentType := 'text/plain; charset=utf-8';*) Msg := 'Recipients:'; for i := 0 to FSubscription.Count - 1 do begin Usr := Lowercase(FSubscription[i]); if Pos('#', Usr) > 0 then Continue; SU := FSvnUsers.UserByLogin[Usr]; if SU <> NIL then begin MA := FMailMessage.Recipients.Add; // How is this done in Synapse? MA.Name := SU.FullName; // <== The name: 'John Doe' MA.Address := SU.Email; // <== The address: john....@somedomain.com Msg := Msg + ' ' + Usr; end; end; Log(Msg); end; -- Bo Berglund Developer in Sweden -- _______________________________________________ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus