Well, after more digging around in the source code, I managed to work out a fix, based on a suggestion in
this post.
However I have written explicit instructions below in the hope that the next person with this problem doesn't have to waste so much time on it. Please read ALL the instructions before trying to apply them, just so you don't get stuck in the middle.
Although I have now resolved my problem, I do feel rather as though I am using a hammer to crack a nut, so I will leave this thread open for a week in case anyone can point me to a more enlightened solution.
Instructions
Basically you need to use zmprov to alter your server's zimbraLmtpBindAddress property. HOWEVER as soon as you do this, all the OTHER bind address which previously had been happily not set (aka set to null) and apparently were happily defaulting to localhost, now cease to work, so you need to explicitly set them as well.
In the instructions below, I have set everything to the local ip_address of the server. On a single-server install it would
probably working setting to 'localhost' but I have NOT tried this - since with previous versions of Zimbra I have encountered problems using 'localhost'.
1. Abbreviations
server_fqdn - FQDN of your server, e.g.
my-srv.yada.co.mz server_ip - internal IP address of your server, e.g.
10.9.8.200 attribute - name of a specific attribute in the LDAP config node for your server, e.g.
zimbraLmtpBindAddress
2. Here are the commands you need to use for this fix.
a. How to CHECK one of the attributes:
Code:
zmprov --ldap getServer server_fqdn | grep attribute
...if this returns nothing then the attribute is not set at all.
b. How to SET one of the attributes to the new IP address:
Code:
zmprov --ldap modifyServer server_fqdn attribute server_ip
...if this returns nothing then the attribute setting was successful - but you can always repeat command (a) above to make sure.
3. The actual fix
1. SET each of the following attributes using command (b) above, to the new IP address:
Code:
zimbraLmtpBindAddress
zimbraPop3BindAddress
zimbraPop3SSLBindAddress
zimbraImapBindAddress
zimbraImapSSLBindAddress 2. STOP Zimbra
3. REMOVE old mailbox log (or move it somewhere if you want to keep it)
Code:
rm -f ZIMBRA_DIR/log/mailbox.log
4. START Zimbra again
5. CHECK mailbox.log to verify there are no connection errors (you may only see these after trying to USE the service in question if your zimbraXXXBindOnStartup attribute is set to FALSE (where XXX is Lmtp, Pop3 or Imap).
Code:
less ZIMBRA_DIR/log/mailbox.log
... page to the end and there should be no errors complaining "unable to bind to ...".
6. HEY PRESTO!