SMTP_MAX_ATTACHMENT_SIZE maximum value is 50,000 FYI so report are truncated at this size max.
But report can be larger than this size that is valid only for the notification email attachement. So your report must be between 50,000 bytes and the MAX_REPORT_SIZE setting in number of blocks (an not bytes !) located in UC_HOSTCHAR_DEFAULT or UC_HOSTCHAR_xxxx if you are not using the standard default. Then it is in the DB but no longer on the local disk when job is ended. Any report bigger than MAX_REPORT_SIZE will stay on disk.
To fix your problem you can use two possible solutions (at least) :
#1 : set the report to be kept on file in the job definition then in post-processing use the :SEND_MAIL to attached the report to a message and finally issue a delete command for this file once mail sent by using a PREP_PROCESS command.
#2 : if you do not want to set the keeping of the report file in definitions, you can use a PREP_PROCESS_REPORT + WRITE_PROCESS combination of commands to create a new temporary file from the report to attach in a SEND_MAIL command. Issue anyway a delete command for this file once mail sent by using a PREP_PROCESS command to cleanup temporary file or run a regular cleanup of obsolete files in the report directory.
WARNING if report exceed MAX_REPORT_SIZE, the report loaded in the DB is incomplete. In that case, you must use the original report that is kept on disk to get the full report.
Note: if you do not access report from the post-processing and do not set to keep report on file in the definition, report may be loaded in the DB and removed from disk before you can execute a SEND_MAIL command with the report attached. To prevent this use the following commands at end of the post-processing, after the SEND_MAIL command, it will keep the file on disk until post-processing is ended :
:SET &reportkeep# = PREP_PROCESS_REPORT(,,REP,"*")
:PROCESS &reportkeep#
: TERM_PROCESS
:ENDPROCESS