Build 2.3.0.0 (August 23, 2018)

This update is mostly related to soft and hard bounce logic.

Check-in's for the '2.2.3 Branch:

  • 2018-08-22 - The Bounce Activity modal (accessible from the Edit Contact screen) now shows Alternate Category, which is generated by PowerMTA. The possible values for the AlternativeCategory are: spam-related, content-related, quota-issues, invalid-sender, routing-errors, inactive-mailbox, other, bad-mailbox, policy-related, message-expired, protocol-errors, bad-configuration, no-answer-from-host, or unknown. Unknown is the value shown for bounces that transpired prior to this code update. The values are set by parsing the returned messages or soft bounced messsages with the following Regular Expressions.
    • /^2.\d+.\d+;/ success
    • /spam/ spam-related
    • /junk mail/ spam-related
    • /blacklist/ spam-related
    • /blocked/ spam-related
    • /\bU\.?C\.?E\.?\b/ spam-related
    • /\bAdv(ertisements?)?\b/ spam-related
    • /unsolicited/ spam-related
    • /\b(open)?RBL\b/ spam-related
    • /realtime blackhole/ spam-related
    • /http:\/\/basic.wirehub.nl\/blackholes.html/ spam-related
    • /\bvirus\b/ virus-related
    • /message +content/ content-related
    • /content +rejected/ content-related
    • /quota/ quota-issues
    • /limit exceeded/ quota-issues
    • /mailbox +(is +)?full/ quota-issues
    • /sender ((verify|verification) failed|could not be verified|address rejected|domain must exist)/ invalid-sender
    • /unable to verify sender/ invalid-sender
    • /requires valid sender domain/ invalid-sender
    • /bad sender's system address/ invalid-sender
    • /No MX for envelope sender domain/ invalid-sender
    • /^[45]\.4\.4/ routing-errors
    • /no mail hosts for domain/ invalid-sender
    • /Your domain has no(t)? DNS\/MX entries/ invalid-sender
    • /REQUESTED ACTION NOT TAKEN: DNS FAILURE/ invalid-sender
    • /Domain of sender address/ invalid-sender
    • /return MX does not exist/ invalid-sender
    • /Invalid sender domain/ invalid-sender
    • /Verification failed/ invalid-sender
    • /\bstorage\b/ quota-issues
    • /(user|mailbox|recipient|rcpt|local part|address|account|mail drop|ad(d?)ressee) (has|has been|is)? *(currently|temporarily +)?(disabled|expired|inactive|not activated)/ inactive-mailbox
    • /(conta|usu.rio) inativ(a|o)/ inactive-mailbox
    • /Too many (bad|invalid|unknown|illegal|unavailable) (user|mailbox|recipient|rcpt|local part|address|account|mail drop|ad(d?)ressee)/ other
    • /(No such|bad|invalid|unknown|illegal|unavailable) (local +)?(user|mailbox|recipient|rcpt|local part|address|account|mail drop|ad(d?)ressee)/ bad-mailbox
    • /(user|mailbox|recipient|rcpt|local part|address|account|mail drop|ad(d?)ressee) +(\S+@\S+ +)?(not (a +)?valid|not known|not here|not found|does not exist|bad|invalid|unknown|illegal|(is +)?unavailable)/ bad-mailbox
    • /\S+@\S+ +(is +)?(not (a +)?valid|not known|not here|not found|does not exist|bad|invalid|unknown|illegal|unavailable)/ bad-mailbox
    • /no mailbox here by that name/ bad-mailbox
    • /my badrcptto list/ bad-mailbox
    • /not our customer/ bad-mailbox
    • /no longer (valid|available)/ bad-mailbox
    • /Recipient address rejected/ bad-mailbox
    • /have a \S+ account/ bad-mailbox
    • /The email account that you tried to reach does not exist/ bad-mailbox
    • /\brelay(ing)?/ relaying-issues
    • /domain (retired|bad|invalid|unknown|illegal|unavailable)/ bad-domain
    • /domain no longer in use/ bad-domain
    • /domain (\S+ +)?(is +)?obsolete/ bad-domain
    • /denied/ policy-related
    • /prohibit/ policy-related
    • /refused/ policy-related
    • /allowed/ policy-related
    • /banned/ policy-related
    • /policy/ policy-related
    • /suspicious activity/ policy-related
    • /bad sequence/ protocol-errors
    • /syntax error/ protocol-errors
    • /\broute\b/ routing-errors
    • /\bunroutable\b/ routing-errors
    • /\bunrouteable\b/ routing-errors
    • /Invalid 7bit DATA/ content-related
    • /^[45]\.1\.[1346];/ bad-mailbox
    • /^[45]\.1\.2/ bad-domain
    • /^[45]\.1\.[78];/ invalid-sender
    • /^[45]\.2\.0;/ bad-mailbox
    • /^[45]\.2\.1;/ inactive-mailbox
    • /^[45]\.2\.2;/ quota-issues
    • /^[45]\.3\.3;/ content-related
    • /^[45]\.3\.5;/ bad-configuration
    • /^[45]\.4\.1;/ no-answer-from-host
    • /^[45]\.4\.2;/ bad-connection
    • /^[45]\.4\.[36];/ routing-errors
    • /^[45]\.4\.7;/ message-expired
    • /^[45]\.5\.3;/ policy-related
    • /^[45]\.5\.\d+;/ protocol-errors
    • /^[45]\.6\.\d+;/ content-related
    • /^[45]\.7\.[012];/ policy-related
    • /^[45]\.7\.7;/ content-related
  • The bounce category is determined by our bounce API. Possible values are included below.  We use by Category and Alternative Category (2 pieces of data that come from different parts of the Konvey application) to control bounce counts.
    • UNDETERMINED - (ie. Recipient Reply)
    • HARD BOUNCE - (ie. User Unknown)
    • SoftGeneral - General
    • SoftDnsFailure - Dns Failure
    • SofteMailboxFull - Mailbox Full
    • SOFT BOUNCE - Message Too Large
    • BOUNCE - NO EMAIL ADDRESS. VERY RARE!
    • GENERAL BOUNCE
    • MAIL BLOCK - General
    • MAIL BLOCK - Known Spammer
    • MAIL BLOCK - Spam Detected
    • MAIL BLOCK - Attachment Detected
    • MAIL BLOCK - Relay Denied
    • AUTO REPLY - (ie. Out Of Office)
    • TRANSIENT BOUNCE
    • SUBSCRIBE Request
    • UNSUBSCRIBE/REMOVE Request
    • CHALLENGE-RESPONSE
  • 2018-08-21 - Implemented soft bounce limits. 10 or more soft bounces now make Contacts unmailable. Clicks and Opens now reset the HardBounces and SoftBounces counts for Contacts. When a recipient reaches 10 soft bounces without a reset, they are excluded from future sending. A reset to zero is caused by an Open or Click. A reset can also be manually performed by a Site Admin. The reset is performed by a separate service that updates thousands of records in a loop, in a way that does not heavily impact database performance.  The service runs 24/7/365.  A contact can therefore have more than 10 soft bounces.  All soft bounce data is visible from the Konvey inter face.
  • 2018-08-21 - Fixed a bug with the new AlternateCategory for bounces.
  • 2018-08-21 - Fixed another bug with AlternateCategory. Instead of processing only *.msg files, the incoming mail engine now processes all files with a file extension of three or fewer characters.
  • 2018-08-20 - Increased server bounce file retention from 14 to 120 days.