On CentOS 7 it looks like firewalld creates iptables rules even though iptables does not seem to be installed.

the iptables command works however the service is not installed when trying systemctl status iptables the result says iptables.service could not be found

iptables -L shows a lot of rules when firewalld service is started and none when firewalld is disabled

There is a lot of information on how to create rules in both firewalld and iptables:

https://upcloud.com/community/tutorials/configure-iptables-centos/
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7
https://www.redhat.com/sysadmin/iptables

This one in particular had a good suggestion on adding the mail ports I was focusing on at the time

iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 587 -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

https://unix.stackexchange.com/questions/104954/how-to-allow-outgoing-smtp-on-iptables-debian-linux