Mail address spuriously deactivated due to delay notifications

Hello,

I have just noticed that I stopped receiving mail from a discourse (nixos1@discoursemail.com) about 14 days ago. My email address is still correct.

In my PM on the discourse instance (that obviously I don’t go checking often because discourse is supposed to send me email), discourse told me that “we’re having trouble reaching you via email”.

My mail server has been half-down about 14 days ago, when my SMTP server was accepting messages but my antispam was down and thus mail stayed in the queue. My SMTP server thus sent mail delay warnings.

However, it looks like discourse interpreted these delay warnings as “Our last few emails to you have all bounced back as undeliverable.”.

This is wrong, and the mail that got sent to Discourse is like the following:

Subject: Delivery status notification: delayed

    Hi!

    This is the MAILER-DAEMON, please DO NOT REPLY to this email.

    A message is delayed for more than 4 hours for the following
    list of recipients:

[...]: Network error on destination MXs

    Please note that this is only a temporary failure report.
    The message is kept in the queue for up to 7 days.
    You DO NOT NEED to re-send the message to these recipients.

    Below is a copy of the original message:
[...]

Note the caps “You DO NOT NEED to re-send the message to these recipients.”, and the Subject line that clearly states “delayed”. Nothing has gone wrong in the mail setup, and intermittent downtime is supposed to be expected from SMTP servers. This is not a non-delivery notification.

In addition, the discourse UI shows no indication that the mail sending has been stopped. I have just tried to change my email address, and hope this will turn ML mode on again… let’s see what happens.

Cheers,
Leo

1 Like

Did you check the bounce score for your account in the admin settings?

Note that it takes many bounces to get to an email invalidation. Furthermore, successful emails reduce the bounce score over time.

3 Likes

I am not an admin of the discourse instance.

As for the bounces, the thing is there has been none, unless my server
started sending NDN just to Discourse. There have been delayed mail
notifications, but these are not NDN.

As for succesful emails, discourse has tried to send no mail to my
machine between Nov 30 and Dec 14, so I don’t really see how successful
emails could have reduced the bounce score over time. Unless ~10 hours
sending one delayed mail per received mail is already enough to pass
over the point of no return? nixos1@discoursemail.com sends about 20
mails per day, so I guess that’s about the number of delayed mail
notices my server sent.

However, I just want to insist that the thing I consider a bug is that
mail delay notices appear to be considered as mail bounces, which is
not true.

They should just be ignored, especially for dead address detection
reason where it makes sense to wait for an actual bounce. Indeed, I did
eventually receive all the email discourse sent me this day (but not
email discourse stopped sending me after noticing the delay
notifications)

Then you need to check with the person who is…

2 Likes

What bounce code do you send back in that case? 4.something?

2 Likes

It’s not an SMTP level error - it’s an email generated by an intermediate MTA to the Sender (pretty sure it’s the envelope sender) when the mail is in the queue for longer than a certain duration.

I’ll send you some examples.

Then you need to check with the person who is…

This person would likely get nothing, given I have already changed twice
my email address to get it back to working (with the same email address
as before) and am receiving email again; so I’d rather not bother them
with this.

This bug report is only here to inform you that discourse wrongly
handles delay notifications as bounces, and shows no visual indication
that the email address is completely disabled when it is, after ~20
delay notifications if I try to guess from the amount of mail I usually
receive from this discourse.

I am not particularly looking for work-arounds here, only hoping that
such a situation doesn’t arise again for other people who may not notice
the interruption of the mail either.

If your question is to check that the bounce number actually increased,
I would think the private message I received is explicit in that it
assumes my server bounced, which as far as my logs show it didn’t:

(subject:) Is your email address correct?

We’re sorry, but we’re having trouble reaching you via email. Our last
few emails to you have all bounced back as undeliverable.

Can you make sure your email address is valid and working? You may also
wish to add our email address to your address book / contact list to
improve deliverability.

My SMTP server’s logs are also quite clear that it only went down for
the duration of a reboot.

  • Nov 30, 05:13: My server sends first delay notification
  • Nov 30, 05:24: Discourse attempts to send its last mail to me
  • 06:28: 2nd and 3rd DN sent the same minute
  • 08:17: 4th DN
  • 12:35: Queue emptied, all mail are delivered, end of the incident…
    but discourse doesn’t resume sending any mail, despite no
    non-delivery notificaition having been sent

We are looking into adding detection for delayed delivery notifications from the more common MTAs. :+1:

7 Likes

We are looking into adding detection for delayed delivery notifications from the more common MTAs. :+1:

Thank you! :+1: