zone-eu / zone-mta

📤 Modern outbound MTA cross platform and extendable server application
European Union Public License 1.2
599 stars 96 forks source link

about the email bounce time #304

Closed smile-tommy closed 2 years ago

smile-tommy commented 2 years ago

For the zonemta,the default bounce time is 48 hours,it is too long. const ttlMinutes = [ 5 / 5 /, 7 / 12 /, 8 / 20 /, 25 / 45 /, 75 / 2h /, 120 / 4h /, 240 / 8h /, 240 / 12h /, 240 / 16h /, 240 / 20h /, 240 / 24h /, 240 / 28h /, 240 / 32h /, 240 / 36h /, 240 / 40h /, 240 / 44h /, 240 / 48h / ];

I have changed to be as below and restart the server,but after 10 hours,i still not get the bounce emails. const ttlMinutes = [ 3 / 3 /, 5 / 5 /, 6 / 6 / ];

smile-tommy commented 2 years ago

let the sender know the sending issue asap is import,for example,you are sending a bidding rate to some company,there is deadline in 6 hours. The sender sent the email,but never get warming message,after 48 hours,he get the bounce email,and the bidding time is over,and your company lost the opportunity!!

JQuags commented 2 years ago

https://datatracker.ietf.org/doc/html/rfc5321 indicates after the first attempt has failed, the the next retry must be delayed and the retry interval should be at least 30 minutes, up to 4 - 5 days. While you can modify your source to retry more I don't see this as a zone mta issue, and the values should follow rfc5321.

smile-tommy commented 2 years ago

As no warning until 48 hours,it is problem. Just like the above,if your company is sending bidding rate situation,after you get the bounce email,you have lost business.

louis-lau commented 2 years ago

@smile-tommy Now another scenario: it's the end of the day, and you just sent a bid to some company. The company email servers are down for an hour. The email gets bounced, because you only waited 14 (3+5+6) minutes before bouncing. You left for the day after sending the email so you don't notice. You lose the bid. If only your server had tried for a little longer.

Another scenario: the recipient uses greylisting, this means they test if your retry. They greylist new ips for 30 minutes. You can now never send them email, because you only try for 14 minutes. You lose the bid.

There's a good reason emails get deferred. People smarter than you and me have thought about this when writing the RFC.

Permanent rejections do not get deferred. So for example if you email hddhiwbddgudjeddhdyyd@gmail.com, you will get a bounce immediately. However, if you send to john@gmail.com, and his inbox is full, zone-mta will keep trying because there's a chance that there will be room in the inbox later.

smile-tommy commented 2 years ago

The email get bounced with 15min,and the sender did not report issue to IT department,it is sender's responsibility. But the email get bounced after 48 hours,and the sender did not get any notice for mail not deliver,it is IT department's responsibility. The main problem,change const ttlMinutes,seems never working at all.

andris9 commented 2 years ago

Not informing about soft bounces is standard behavior. If you send an email via Postfix, you will have to wait at least 4 days before you get any notification about it. If you want to get a faster notification, you have to write a plugin. For example see the wildduck zonemta plugin that handles soft bounce notifications here