Main should never be delivered to the root account. Normally there is an alias for root in
/etc/aliases to deliver the email to the another account. If you have a limited number of accounts you need to consolidate, the easiest way is to add entries to
/etc/aliases. This can be configured to send the email to an address on another server if desired.
To send email configure your mailserver to use a Smarthost. I generally recommend using your ISPs relay server. If all your mail will be going to one domain, you may be able to use that domain's MX (mail exchange) as your Smarthost. You can verify delivery by looking at
/var/log/mail.log (or wherever postfix logs its messages).
If you want to reliably send email directly to the Internet, get a static address. See email delivery management grievances for some guidance.
Reliable incoming mail delivery requires a static IP address. There are programs to fetch mail from another server such as fetchmail that work well when mail is delivered to another server.
If you mail server is MX for abc.com it will be able to accept mail for its domain without being an open relay. Configuring an open relay is not a good idea.
I would recommend you use a name like
mail.abc.com or even
www.abc.com for your mail server rather than
abc.com. It will be able to send mail for
abc.com. It is a good idea to configure it as an
abc.comif it is doing so. Second level domains are rarely used by legitimate mail servers.