Operating system makes a diff ... with Windows moodle download, isn't there, hidden in the package, an MTA - mini-mail server - that is used in conjuntion with PHP Mailer which Moodle would use IF SMTP not setup?
Running cron often enough on all?
On the Linux boxen, the default would be to use PHP Mailer built into Moodle but PHP is NOT an MTA. However, depending upon addy's in messages mail might never arrive but an attempt is made.
The default MTA for CentOS Linux/PHP is sendmail ... that just sends mail ... check your phpinfo for the path to that 'exec' - sendmail_path. Might show: /usr/sbin/sendmail -t -i
Is sendmail installed? whereis sendmail will tell ya ;)
One might have to install postfix or confgure the sendmall to actually send the mail. Sendmail on CentOS, for example, really is in two parts ... the MTA sending will attempt to go to localhost, but sendmail may not allow relaying by localhost.
Check the servers maillog to see if it's throwing errors. Also install a text based mail reader ... like alpine/pine. Installing that and accessing the mail as root, you might have bunches of bounced messages sent back to postmaster (ie, root user) that would tell you why the bounce. Could also use alpine/pine to test the sending of mail to any addy or via any STMP server ... can configure alpine/pine to use a remote SMTP.
'spirit of sharing', Ken