Welcome to the forums
In answer to question 1 yes you can certainly do that. Do all emails end up in one IMAP mailbox or separate ? Two choices :-
1) Use fetchmail to collect all email and inject into the Zimbra SMTP service for local delivery
2) On each account within Zimbra you can setup a external account which is polled and the email is then collected
With respect to sending emails you can setup your external mail server as a smarthost from the ZCS (Zimbra) Admin GUI.