Email channel verification fails

Infos:

  • Used Zammad version: 7.0.1
  • Used Zammad installation type: package
  • Operating system: Debian 13
  • Browser + version: Firefox 140.10.0esr (64-bit)

Expected behavior:

  • that the email verification at the end of the email channel setup wizard would not fail, when sending the email via smtp is successful

Actual behavior:

  • the email verification popup reverts to the email channel setup wizard and shows in a red box the message “Email sending and receiving could not be verified. Please check your settings.”

Steps to reproduce the behavior:

  • follow the email channel setup wizard

Verification of the inbound email account is successful, and Zammad detects the correct number of messages in the inbox, so that part works.

And sending a verification email to “verify-external-smtp-sending@discard.zammad.org” returns OK, but still the verification fails!?

I have tried both to configure postfix to connect to the smtp server, and select “Local MTA” for outbound, and to configure the smtp settings in Zammad - in both cases the verification fails.

I created the email channel via the rails console, and got ticket creation via email as well as replying to the customer by email working, but still when I click “Edit” on the outbound part of the channel, and force a verification by clicking “Continue”, the verification fails.

Since Zammad is clearly able to use both the inbound and the outbound configuration of the email channel, I believe the verification should not fail.

But as I am totally new into Zammad, it is highly likely that I have missed something - I just can’t figure out what it is.

Any insight into why this is failing is highly appreciated.

Servus, Whats Up!

Email verification failures can be tricky even when inbound/outbound work separately. A few things to check:

  1. IMAP/SMTP credentials - Make sure both use the same authentication method and credentials are current
  2. SPF/DKIM records - Verify your domain’s DNS records allow sending from your mail server
  3. Firewall/ports - Ensure ports 587 (SMTP) and 993/143 (IMAP) aren’t blocked
  4. Zammad logs - Check /var/log/zammad/ for specific errors during verification
  5. Email channel config in Zammad 7 - There were some changes to email handling in 7.x; you might want to compare your settings to the email channel docs

Since you successfully created the channel via rails console and it’s working, this sounds like a verification-specific issue rather than a config problem. The wizard might be more strict than the manual setup.

Have you checked the Zammad logs during the verification attempt? That’s usually the best place to find what’s actually failing.

Thank you for following up on this.

The thing is that I cannot find any details in the logs that explains why it is failing.

Below is a snippet from the production log of a verification flow executed just some minutes ago, initiated by me clicking “Edit” on “Outbound” of the currently only email channel:

I, [2026-05-11T06:32:09.680362#15109-84248]  INFO -- : Started POST "/api/v1/channels_email_outbound" for 10.100.0.23 at 2026-05-11 06:32:09 +0000
I, [2026-05-11T06:32:09.682014#15109-84248]  INFO -- : Processing by ChannelsEmailController#outbound as JSON
I, [2026-05-11T06:32:09.682049#15109-84248]  INFO -- :   Parameters: {"adapter" => "smtp", "options" => {"host" => "smtp.mailfence.com", "user" => "***", "password" => "[FILTERED]", "port" => "465", "ssl_verify" => true}, "email" => "[FILTERED]", "channel_id" => 3}
I, [2026-05-11T06:32:11.444134#15109-84248]  INFO -- : Completed 200 OK in 1762ms (Views: 0.1ms | ActiveRecord: 2.2ms (15 queries, 6 cached) | GC: 0.0ms)
I, [2026-05-11T06:32:11.479000#15109-83928]  INFO -- : Started POST "/api/v1/channels_email_verify" for 10.100.0.23 at 2026-05-11 06:32:11 +0000
I, [2026-05-11T06:32:11.480388#15109-83928]  INFO -- : Processing by ChannelsEmailController#verify as JSON
I, [2026-05-11T06:32:11.480443#15109-83928]  INFO -- :   Parameters: {"inbound" => {"adapter" => "imap", "options" => {"host" => "imap.mailfence.com", "user" => "***", "password" => "[FILTERED]", "port" => 993, "ssl" => true, "keep_on_server" => true, "folder" => ""}, "group_id" => 2}, "outbound" => {"adapter" => "smtp", "options" => {"host" => "smtp.mailfence.com", "user" => "***", "password" => "[FILTERED]", "port" => "465", "ssl_verify" => true}, "email" => "[FILTERED]", "channel_id" => 3}, "meta" => {}, "channel_id" => 3, "group_id" => 2, "email" => "[FILTERED]"}
I, [2026-05-11T06:32:13.742986#15118-616200]  INFO -- : execute Channel.fetch_async (try_count 0)...
I, [2026-05-11T06:32:13.749383#15118-616200]  INFO -- : ended Channel.fetch_async took: 0.009375679 seconds.
I, [2026-05-11T06:32:15.666253#15118-84120]  INFO -- : 2026-05-11T06:32:15+0000: [Worker(host:cc-mombat741-zammad pid:15118 tid:84120)] Job ChannelFetchJob [8f06ac51-34ba-4eac-b752-7dcde8f27dd2] from DelayedJob(communication_inbound) with arguments: [{"_aj_globalid" => "gid://zammad/Channel/3"}] (id=9391) (queue=communication_inbound) RUNNING
I, [2026-05-11T06:32:15.703093#15118-84120]  INFO -- : fetching imap (imap.mailfence.com/*** port=993,ssl=true,starttls=false,folder=INBOX,keep_on_server=true,auth_type=LOGIN,ssl_verify=true)
I, [2026-05-11T06:32:16.535406#15118-84120]  INFO -- :  - no message
I, [2026-05-11T06:32:16.540929#15118-84120]  INFO -- : 2026-05-11T06:32:16+0000: [Worker(host:cc-mombat741-zammad pid:15118 tid:84120)] Job ChannelFetchJob [8f06ac51-34ba-4eac-b752-7dcde8f27dd2] from DelayedJob(communication_inbound) with arguments: [{"_aj_globalid" => "gid://zammad/Channel/3"}] (id=9391) (queue=communication_inbound) COMPLETED after 0.8746
I, [2026-05-11T06:32:18.043553#15109-83928]  INFO -- : fetching imap (imap.mailfence.com/*** port=993,ssl=true,starttls=false,folder=INBOX,keep_on_server=true,auth_type=LOGIN,ssl_verify=true)
I, [2026-05-11T06:32:18.745204#15118-83960]  INFO -- : ProcessScheduledJobs running...
I, [2026-05-11T06:32:18.746479#15118-83960]  INFO -- : Running job thread for 'Check channels.' (Channel.fetch_async) status is: sleep
I, [2026-05-11T06:32:18.746534#15118-83960]  INFO -- : Running job thread for 'Process ticket escalations.' (Ticket.process_escalation) status is: sleep
I, [2026-05-11T06:32:18.746739#15118-83960]  INFO -- : Running job thread for 'Execute planned jobs.' (Job.run) status is: sleep
I, [2026-05-11T06:32:18.891839#15109-83928]  INFO -- : verify mode, fetch no emails #ead3d0b85eeb317b65c1
I, [2026-05-11T06:32:24.855468#15109-83928]  INFO -- : fetching imap (imap.mailfence.com/*** port=993,ssl=true,starttls=false,folder=INBOX,keep_on_server=true,auth_type=LOGIN,ssl_verify=true)
I, [2026-05-11T06:32:25.043220#15109-84096]  INFO -- : Started GET "/api/v1/channels_email?_=1778479107339" for 10.100.0.23 at 2026-05-11 06:32:25 +0000
I, [2026-05-11T06:32:25.045823#15109-84096]  INFO -- : Processing by ChannelsEmailController#index as JSON
I, [2026-05-11T06:32:25.045863#15109-84096]  INFO -- :   Parameters: {"_" => "1778479107339"}
I, [2026-05-11T06:32:25.055719#15109-84096]  INFO -- : Completed 200 OK in 10ms (Views: 0.2ms | ActiveRecord: 3.5ms (20 queries, 6 cached) | GC: 0.5ms)
I, [2026-05-11T06:32:25.809590#15109-83928]  INFO -- : verify mode, fetch no emails #ead3d0b85eeb317b65c1

To me, this looks as an ordinary flow, but maybe someone more knowledgeable about zammad internals can get a hint of what is going wrong?

Difficult to tell

Zammad does two things:

  • verify external sending to a discarding mail address at Zammad HQ. Technically enque is good enough in this stage, it may not be rejectwd by your MTA
  • verify internal sending by sending a mail to the mail account (via the mail account you‘re adding) and then checking (and removing) in the provided folder.

The latter usually is the problem. You should see these test mails stacking in the mailbox in that case. Make sure ‚INBOX‘ is correct for your mailbox. Also, this is a vanilla installation without any changes to the code?

Thanks for your response.

Zammad is installed using the debian packages, and we have made no changes to the package-provided files (except maybe some configuration files)

Since receiving (and sending) of ticket-related mails appears to work flawless, I would assume that INBOX is correctly set, but I cannot find a single test mail in the “Inbox” or “Sent Items” folders of the mail account used for the configured mail channel.

I imagine that in order to verify the email channel settings, the verification steps would have to use the exact same settings, in order to do an actual verification.

Are there any on-host folders that I can check for the supposed-to-be-sent test messages?
Or can I somehow increase the log level to maybe get more details?

Huh. You said the verification doesn‘t work. Now you‘re saying the mailbox is connectwd already…?

What exactly are you doing? Start from opening the management of the channels, step by step please.

Yes, the mailbox is fully connected and working with the email channel, but the verification of the channel settings is failing.

That’s exactly why I am slightly confused :slight_smile:

Let’s take a short trip down memory lane, to review what I have tried:

When I first installed Zammad, I configured the email channel via the UI, but the verification steps kept failing on the sending part.

I reconfigured outbound to use “local MTA” and I manually verified that the postfix cfg was in working order, but still verification failed.

Then I figured out that I could configure the email channel via rails console, and after doing so, I verified that I could create tickets by sending an email to the channel mailbox, and that responses was sent when I updated the ticket.

In the UI I edited the outbound part of the channel, to force a verification, and to my surprise is still failed. And still does.

So there you have it - while I have a fully working sending and receiving of mails via the channel, the verification steps just won’t complete with success.

This is no longer a biggie to me, but back then, it was a blocker, because apparently I could not properly setup an email channel, and get the most basic stuff working.