On Sat, 15 May 2021 09:00:08 +0200 (CEST), Michael Van Canneyt via fpc-pascal <fpc-pascal@lists.freepascal.org> wrote:
> >Glad you got it working. > >I worked for some time for a mass mailing company. >From that experience I assure you that delivering mail is NOT easy. > >Meanwhile, there are a lot of safety mechanisms installed on all "big" mail >platforms, and getting a mail delivered becomes more and more difficult. > >Michael. Well, now I got stuck again... I did all of my code testing on Windows because that is my normal environment. When all was done I had created a mailsupport unit encapsulating the stuff I need for my emailings and I used that in a command line mailer to verify that everything worked OK. Which it did on Windows except for some fussy mailservers who would not receive the emails (my GMail account), but the email was in any case sent. But then when I moved to Linux (on Raspberry Pi3) I always got errors on mail send. So no outgoing email. So I have now finally traced the execution using the Lazarus debugger and it seems like Synapse does not connect using SSL after all.. :( I have set it up as well as I have understood the documentation with the smtp switches for SSL and TLS active (set to true) and the port and user is set as on Windows (after all I copied the source files over to the Linux box and opened the project in Lazarus over there). The test emailer has all of the logon etc info built into the executable (just for testing of course) but failed. So when I single-step in the code I reach the following location after starting on SMTP.Connect: function TSMTPSend.Connect: Boolean; begin FSock.CloseSocket; FSock.Bind(FIPInterface, cAnyPort); if FSock.LastError = 0 then FSock.Connect(FTargetHost, FTargetPort); if FSock.LastError = 0 then if FFullSSL then FSock.SSLDoConnect; //<= I get to here Result := FSock.LastError = 0; end; procedure TTCPBlockSocket.SSLDoConnect; begin ResetLastError; if not FSSL.Connect then //<=This goes to no action.... FLastError := WSASYSNOTREADY; ExceptCheck; end; function TCustomSSL.Connect: boolean; //<= To here! begin ReturnError; Result := False; end; Then I traced over into the ExceptCheck function: procedure TBlockSocket.ExceptCheck; var e: ESynapseError; begin FLastErrorDesc := GetErrorDescEx; // <== HERE if (LastError <> 0) and (LastError <> WSAEINPROGRESS) and (LastError <> WSAEWOULDBLOCK) then begin DoStatus(HR_Error, IntToStr(FLastError) + ',' + FLastErrorDesc); if FRaiseExcept then begin e := ESynapseError.Create(Format('Synapse TCP/IP Socket error %d: %s', [FLastError, FLastErrorDesc])); e.ErrorCode := FLastError; e.ErrorMessage := FLastErrorDesc; raise e; end; end; end; FLastErrorDesc gets set to "SSL/TLS support is not compiled" So now I do not know what to do, is this indicating that I need to change some Synapse config to get it working or is it a platform problem (Linux)??? What could I do in order to make SSL/TLS support "compiled" In the documentation http://www.ararat.cz/synapse/doku.php/public:howto:sslplugin they write: First you must explicitly select what plugin you wish to use. You can do it simply by adding unit with SSL plugin to your project sources. You can add only one from SSL plugins in one project! When you wish to use OpenSSL, then add /ssl_openssl/ to your project uses, for example. And that is what I have done, it is listed in uses of my mailsupport source file as: uses Classes, SysUtils, smtpsend, ssl_openssl, //<= Here synautil, mimemess, mimepart; Yet it is "not compiled"... Very confusing. -- Bo Berglund Developer in Sweden _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal