The problem is not that postfix is not running but that it should be listening on a mapped port 25 or 587 on the host. Even if that is the case, with not installing postfix on the host, there is probably no installed that sends the mail (gotten from stdin or commandline parameters) to the port.
You install the client programs sSMTP or msmtp for that, but I have solved this within a small wrapper program for my crontab entries that I was using anyway. The wrapper only sends mail if the program (the "real" crontab etnry it called) exits with non-zero exit value or its output contains the string "error:". That reduces the span from my own systems i.e. no email if the program ran fine. The program uses the Python standard library
smtp module to send the caught output.
The wrapper runs the program with
subprocess.check_output(cmd, stderr=subprocess.STDOUT), and sends the result on error using:
smtp = smtplib.SMTP(host="", port=0) # by default 'localhost' and 25
By setting the host and port I also use this to run jobs from other docker containers.