Penguin

Zimbra Caveats

  • Zimbra wants a dedicated box. Don't try to fake it. Just give it what it wants, it will make you happy. Specifically, it wants HTTP{s}, SMTP, IMAP{s}, POP3{s}, LDAP, and some other ports for it's own admin functions and auxilliary software (virus and spam scanning for example).

Configuring Zimbra With An Existing MTA For Testing

Say you'd like to try out this flashy new technology, and deploy Zimbra as part of an existing domain. This is a lot harder than it could be. Here is what I did.

  • Mail domain (external MXs serve this): example.com
  • Internal domain: internal.example.com
  • Primary MTA (runs exim, but that doesn't matter): mta.internal.example.com
  • Zimbra Server: zimbra.internal.example.com
  1. Create example.com as your primary domain during setup of Zimbra.
  2. Create your "guineapig user" accounts on the Zimbra server which have the same email addresses as their existing MTA counterparts. For the purposes of this example, they are user1 and user2.
  3. su to the zimbra account, and run the following (in multiple lines for clarity, though you could have zmprov md domain attr1 value1 attr2 value2 ...):
zmprov cd zimbra.internal.example.com zimbraDomainType alias
zmprov md zimbra.internal.example.com zimbraMailCatchAllAddress @zimbra.internal.example.com
zmprov md zimbra.internal.example.com zimbraMailCatchAllForwardingAddress @example.com
zmprov md zimbra.internal.example.com zimbraMailTransport smtp:mta.internal.example.com
zmprov mcf zimbraMtaRelayHost mta.internal.example.com
zmprov mcf zimbraMtaDnsLookupsEnabled FALSE
zmcontrol stop
zmcontrol start
  1. Create a DNS A record in your INTERNAL DNS zone files for zimbra.internal.example.com. You should have already done this, but I'll put it here for maximum clarity.
  2. Make sure you allow mta.internal.example.com to relay mail for zimbra.internal.example.com
  3. Assuming you wish to deliver the guineapig users email to both the new Zimbra server for testing purposes, and also to the existing server for backup purposes, you will need to add aliases to your MTA's alias table like the following:
user1:          user1,user1@zimbra.internal.example.com
user2:          user2,user2@zimbra.internal.example.com

You're done. I don't think I've forgotten anything. :)

Currently users on Zimbra emailing each other will not have their email on the main MTA, and so not backed up. As they have been made aware this is a testing environment and should only be used internally for test emails etc., it shouldn't matter, but it would be nice to fix.