“How to migrate a currently running Exim mail server to kumoMta? The setup was done by a former employee, and now we are planning to migrate to kumoMta as our production SMTP relay. However, not everything in Exim directly translates to kumoMta. Can anyone help guide me on which areas I need to focus on first?”
Hey there @peaceful-umbrellabir, thanks for posting. To ensure the fastest resolution to your issue, please review the following and follow all the steps:
I have to say you’re the first one to ask about Exim. Generally speaking we get migrations from sending oriented MTAs, where Exim is generally multipurpose. Can you either share its config or share what kind of things are configured for the Exim instance?
Thank you @yearning-hyena for the reply. This is under /etc/exim4/update-exim4.conf.conf
MAIN_HARDCODE_PRIMARY_HOSTNAME=‘mail.company.com’
CFILEMODE=‘644’
REMOTE_SMTP_HELO_DATA=company.com
dc_eximconfig_configtype=‘internet’
dc_other_hostnames=‘local vm hostname ‘
dc_local_interfaces=‘0.0.0.0’
dc_readhost=‘’
dc_relay_domains=‘*’
dc_minimaldns=‘true’
dc_relay_nets=‘172.16.0.0/16 : 192.168.3.0/24 : 192.168.4.0/24’
dc_smarthost=‘’
dc_use_split_config=‘false’
dc_hide_mailname=‘’
dc_mailname_in_oh=‘true’
dc_localdelivery=‘mail_spool’
In that case I’d just follow the tutorial, you have very little customization, the relay_nets will be relay_hosts
ok thanks i will reply here if i have any further issue.
@peaceful-umbrellabir can you share any of the specific config in /etc/exim4/conf.d/ ?
or , can you describe what behaviour you need from the deployment?
Hi @faithful-ostrich I uploaded a few config in /etc/exim4/conf.d/ for your reference.
https://gist.github.com/javadannur/3c37a7c4aca9865148a39cb0f608f406
https://gist.github.com/javadannur/6a6f0f68804ffd6adbcf13f63be70ca8
https://gist.github.com/javadannur/091e89b223c9a1c0d194d2674ab20941
https://gist.github.com/javadannur/ac62b0b59c818045f64c80892922f1e8
One of the behaviors I aim to replicate from the current Exim setup is that, for instance, when I create a user on the VPN server, it should automatically send the user profile to the SMTP server (Exim), which, in turn, forwards it to the user’s Gmail inbox.
Im getting this when trying to send the email.
[172.16.10.200:34470->172.16.9.44:25] 0ns === Connected 2024-01-10 08:59:26.321586161 UTC
[172.16.10.200:34470->172.16.9.44:25] 0ns === conn_meta hostname=“kumomta-vm.local”
[172.16.10.200:34470->172.16.9.44:25] 0ns === conn_meta received_from=“172.16.10.200:34470”
[172.16.10.200:34470->172.16.9.44:25] 0ns === conn_meta received_via=“172.16.9.44:25”
[172.16.10.200:34470->172.16.9.44:25] 0ns === conn_meta reception_protocol=“ESMTP”
[172.16.10.200:34470->172.16.9.44:25] 161µs ← 220 kumomta-vm.local KumoMTA
[172.16.10.200:34470->172.16.9.44:25] 7s → XXXXX
[172.16.10.200:34470->172.16.9.44:25] 11s → quit
[172.16.10.200:34470->172.16.9.44:25] 11s ← 501-Syntax error in command or arguments: → 1:1
[172.16.10.200:34470->172.16.9.44:25] 11s ← 501- |
[172.16.10.200:34470->172.16.9.44:25] 11s ← 501-1 | XXXXXquit
[172.16.10.200:34470->172.16.9.44:25] 11s ← 501- | ^—
[172.16.10.200:34470->172.16.9.44:25] 11s ← 501- |
[172.16.10.200:34470->172.16.9.44:25] 11s ← 501 = expected mail, rcpt, ehlo, helo, data, rset, quit, vrfy, expn, help, noop, starttls, or auth
[172.16.10.200:34470->172.16.9.44:25] 15s → quit
[172.16.10.200:34470->172.16.9.44:25] 15s ← 221 So long, and thanks for all the fish!
[172.16.10.200:34470->172.16.9.44:25] 15s === Closed
Are you redacting something or actually sending XXXXX as a command?
This Exim config looks fairly generic and since I don’t have your environment table, I cant tell exactly what the settings are, but I have to assume this is working in a system already. The smarthost function you are referring to ( like most things) will be easier to just do frm scratch in KumoMTA. It is literally just msg:set_meta('queue','yoursmarthost')
I would recommend writing up a list of behaviours you want to replicate and build a clean KumoMTA install enabling those behaviours. In my experience, trying to do a line by line conversion is a fool’s errand.
We do provide paid Professional Services and I’d be happy to get you to a successful implementation if you want to engage in a project. Our casual rate is $300 USD an hour, but we offer our Discord supporters a discount to $250 an hour. Alternately we have a packaged offering for $10k that includes the initial investigation, project plan, configuration and deployment of working servers (on your managed servers).
Let us know if you are intertested in that option.
my bad i pasted the wrong result . Here is the updated kcli result
https://gist.github.com/javadannur/4c21ea3c3a20cf1379dd191e7f136cdc
Thanks @faithful-ostrich for your help! It’s still early in testing, so I may have missed something related to the network etc. I’ll try again. It’s good to know there’s professional service available if I can’t solve the issue on my own. Definitely something I’ll consider if needed.
@peaceful-umbrellabir This appears to be resolved so I am tagging it as such. please reopen if it is not.