(I Rewrote my post after getting your answers, which were: MTA=postfix, linux distro=ubuntu, currently email from outside does not arrive)
To get you started, I leave out all the fancy anti-virus/ anti-spam setup.
If I understand your questions, what you want is:
- receive mail directed to addresses like user@your-domain
- access mail through a webmailer from anywhere
To receive email from outside you need to
- configure postfix to accept mail for user @your-domain and let it listen on the right interfaces
- configure your router to forward port 25 to your linux server
- configure the MX-record at your DNS-provider (GoDaddy in your case) to point to your static IP
Postfix's default configuration should be ok.
Just change the host and domain names it accepts and the interfaces where postfix listens:
Replace mail.yourdomain.com by your fully qualified domain name and yourdomain.com by your domain.
sudo postconf -e "mydestination = mail.yourdomain.com, localhost.localdomain, localhost, yourdomain.com"
sudo postconf -e "inet_interfaces = all"
sudo /etc/init.d/postfix restart
To access mail from outside via webmailer you need to
- configure your web server to offer HTTPS
- configure your router to forward port 443 to your linux server
To enable SSL for Apache2 on ubuntu (see https://help.ubuntu.com/12.04/serverguide/httpd.html#https-configuration):
sudo a2enmod ssl
sudo service apache2 restart
This uses self signed test certificates probably issued to localhost or localhost.localdomain. This is good enough to test your setup.
You can create your own self signed certs with e.g. www.your-domain or buy one (which is a waste if you just need encryption IMHO).
See Ubuntu-Certificates-Doku for details.