Rejected reason: Unknown

Hi,

Scope: My Exim mail destination server is not receiving inbound worker email messages:
What is the source of the following error message?:
Rejected reason:

Rejected reason:
Unknown error: permanent error (521): 5.3.0 Upstream error, please check Postmaster · Cloudflare Email Routing docs for possible reasons why. kxgHrM5oWf65

Rejected reason:
Unknown error: permanent error (550): 5.4.6 Email was forwarded too many times. 8EZifBH2aX33

Snippet code:

export default {
async email(message, env, ctx) {
/**
* Route all email traffic to imap.xxxx.com:10025
*/
const destinationServer = ‘imap.xxxx.com:10025’;
const destinationStream = await message.pipeTo(destinationServer);

// Check if the email was successfully delivered to the destination server
if (!destinationStream.ok) {
  // Handle the error
  throw new Error('Failed to deliver email to destination server');
}

// Close the destination stream
await destinationStream.close();

}
}

Regards,
DevCED Team
Hal

It sounds like you are configuring the exact same domain, e.g. @example.com both on Cloudflare’s Email Routing, as well as on your own Exim, and then trying to get Cloudflare’s Email Routing (with e.g. [email protected]) to route the message(s) to [email protected] (on Exim).

That would give you a loop, which Exim likely is trying to prevent, with the above rejection message.

Another user (on Discord) have been trying something similar, with the exact same domain on both ends, which gave the exact same error message as you posted there.

For reference: Discord - #email-routing - 2023-11-07 20:37 UTC (and the following posts from there)

Solution would be to re-configure your Exim to use something like e.g. @internal.example.com or @exim.example.com instead.

You can then configure Cloudflare to pass on e.g. [email protected] to either [email protected] or [email protected].

MX for for internal.example.com or exim.example.com would point directly to your own Exim server.

Same way as the @spaghetti.example.com example, that I previously wrote over here:

Having exact same domain on multiple places, that needs to communicate with each other, usually gives some conflicts, which is most likely what you’re seeing here.

1 Like