I have inherited being a caretaker of a sleepy local mailing list.  It
has about 200 subscribers on it.  Unsurprisingly a large percentage of
the subscribers use Google's Gmail.

Google sometimes will decide that a message will not be accepted.  It
will log the error like this.

    Jun 15 21:16:08 havoc postfix/smtp[6920]: E2298328: 
to=<[[redacted]]@gmail.com>, 
relay=alt1.gmail-smtp-in.l.google.com[173.194.77.26]:25, delay=184458, 
delays=184455/0.1/1.8/0.97, dsn=4.7.28, status=deferred (host 
alt1.gmail-smtp-in.l.google.com[173.194.77.26] said: 421-4.7.28 [96.88.95.61    
  15] Our system has detected an unusual rate of 421-4.7.28 unsolicited mail 
originating from your IP address. To protect our 421-4.7.28 users from spam, 
mail sent from your IP address has been temporarily 421-4.7.28 rate limited. 
Please visit 421-4.7.28  
https://support.google.com/mail/?p=UnsolicitedRateLimitError to 421 4.7.28 
review our Bulk Email Senders Guidelines. 
e127-20020a816985000000b0030cbb1a4dc2si679736ywc.203 - gsmtp (in reply to end 
of DATA command))

I'll make that more readable.

    BCCA4EA4      21692 Mon Jun 13 18:01:46  nclug-boun...@nclug.org
    (host alt1.gmail-smtp-in.l.google.com[173.194.77.27] said:
    421-4.7.28 [96.88.95.61      15] Our system has detected an unusual rate of
    421-4.7.28 unsolicited mail originating from your IP address. To protect our
    421-4.7.28 users from spam, mail sent from your IP address has been 
temporarily
    421-4.7.28 rate limited. Please visit
    421-4.7.28 https://support.google.com/mail/?p=UnsolicitedRateLimitError to
    421 4.7.28 review our Bulk Email Senders Guidelines. 
72-20020a81124b000000b003138c843883si11952908yws.181 - gsmtp (in reply to end 
of DATA command))

Of course I am very much aware of their guidelines and all comply with
them.  This message in particular complies with SPF and DKIM
succefully and there is a DMARC policy.  That's not the issue.  But
this message has the max recipient limit of 50 which Google very often
accepts but when Google decides not to accept a message it will
continue to 421 the message forever.  Five days later the message will
bounce.  All of the while other new messages will be accepted.  It
seems that once Google decides not to accept a message then it will
continue to decide that forever.  Have seen several examples of this.

It is interesting that mail to domains hosted at google that are not
@gmail.com but other named domains delivered okay.  Google accepted
the exact same message to them fine.  And tragicomically this
particular message was sent by a Gmail user from Google.  So as far as
message body content is concerned this message originated at Google.

In order to try to more succesfully deliver to Gmail I find various
wisdom on the web that suggests slowing down when talking to Google.
But unfortunately I was unable to locate specific examples.  Therefore
I have implemented this configuration as best as I could from reading
the very fine documentation.  But did I get it right?

In master.cf:

    gmail unix - - y - - smtp
        -o gmail_destination_concurrency_limit=2
        -o gmail_destination_rate_delay=1s
        -o gmail_destination_recipient_limit=2

In transport:

    gmail.com gmail:

First...  Is this reasonable?  Yes it is very slow.  But Google seems
to want it very slow.  And this is a very sleepy mailing list.  Slow
is fine.

Second is that I have three messages still in the mail queue that list
50 recipients all at Google.  Is there a way to have Postfix reprocess
the message and split the delivery up so that it will use the new
transport rather than the previous?

    postsuper -r ALL  # no effect

I tried the above but obviously that did not cause Postfix to
reprocess the message and then use the new transport.  Is there a way
to have Postfix reprocess to use the new transport rules?

Thanks!
Bob

Reply via email to