From where can I download the latest version of smtpmail.p

Posted by Admin on 25-Mar-2010 05:39

I am using smtpmail.p version 5.8a. I am getting a 2914 error. Put/Get functions not allowed on uninitialized memory. (2914)

Does anyone know what this could be OR what website I must use to download the latest copy of the smtpmail.p program.

All Replies

Posted by jankeir on 25-Mar-2010 05:50

You can get it at

The lates version is here:

Posted by kevin_saunders on 25-Mar-2010 05:50

5.8c is available from the FreeFrameWork project at

Posted by OctavioOlguin on 03-Dec-2015 17:29

I started to have erro (1387) * * * trying to wirte to a closed stream * * * on line 1338:

  IF vState < 0 THEN {&LOGGER} vMessage SKIP.
  {&Logger} "End SMTP Session" SKIP.
  IF MsgFile <> "" THEN OUTPUT {&MsgStream} CLOSE.
  OUTPUT {&Stream} CLOSE. 


The IF vState < 0 linea is the 1338 line, so somehow the program cames to CLEANUP with the stream closed...

Any clue?

(using smtpmail58c.p)

Posted by Stefan Drissen on 04-Dec-2015 01:56

RUN Cleanup is sprinkled through the source and can result in cleanup being run more than once.

Remove all the RUN Cleanups and add a FINALLY block to the main block with RUN Cleanup.

Posted by OctavioOlguin on 04-Dec-2015 07:45

Would this turn version to 5.8d?

Isn't somewhere somebody autoriresed to create that version?

Shouldn't we pursue that?

what you think?

Posted by OctavioOlguin on 04-Dec-2015 13:06

I think that would be very much fiddling around to move the cleanup procedure, as it is called from the middle of procedures which after the process inside de procedure, they keep doing stuff un til the end of procedure.

I plan to put some kind of stream xx:handle to manipulate it and query it's state before sending the output (all in the cleanup procedure).

The problem is I can't find how to ask if stream looger IS-OPENED() or something like that...  I can't find queryabe attributes of the stream handle.

Am I correct trying to do that?


Posted by Stefan Drissen on 04-Dec-2015 16:47

I did this a long time ago and if memory serves me correctly I simply removed all RUN Cleanup procedures and added a FINALLY block to the main block that performs RUN CleanUp.

This thread is closed