How do we use EGW_MAX_PER_ADDRESS and EGW_MAX_MSG_DURATION configurations?
Environment:
Emails, Oracle B2C Service, all versions
Resolution:
Below is a description for the EGW_MAX_PER_ADDRESS and EGW_MAX_MSG_DURATION setting's functionality and examples of the expected behavior.
EGW_MAX_PER_ADDRESS
Specifies the maximum number of emails that are accepted from an individual email address within a EGW_MAX_MSG_DURATION hour period. This is used to identify and stop auto-responder email loops. For example, if this setting is set to 23, and 24 emails are received from the same address within EGW_MAX_MSG_DURATION hours, the 24th email from that address is discarded and no response email is sent, thereby breaking the email loop. Setting the value to zero turns off this loop detection. Default is 23.
EGW_MAX_MSG_DURATION
Specifies the number of hours in which EGW_MAX_PER_ADDRESS is calculated. By default, the system only accepts 23 messages from a given email address in a 12-hour period. Since a high number of messages in a short period of time is reasonable, it is recommended the duration not be less than 8 hours or more than 24 hours. Default is 12.
First common mistake is to assume that EGW_MAX_PER_ADDRESS configuration only counts emails that were turned into incidents. It actually counts emails and not incidents. Despite if an email was turned into incident, incident was updated or email was rejected, it will be counted.
Example: If EGW_MAX_PER_ADDRESS was set to 100 and an end user has sent 130 emails, where:
- 50 emails created new incidents
- 30 emails updated existing incidents
- 10 emails were rejected by mailbox filters
- 10 emails were rejected by business rules
- 30 emails were rejected due to EGW_MAX_PER_ADDRESS = 100
Then all 130 emails will be counted as accepted emails from same email address.
Second mistake is to assume that EGW_MAX_MSG_DURATION configuration is a timer. And if for example, EGW_MAX_MSG_DURATION was set to 24, then the product will be creating new incidents exactly after 24 hours passed.
This is not the case as the product evaluates each received email against the value in EGW_MAX_MSG_DURATION configuration.
Example:
EGW_MAX_MSG_DURATION = 24
EGW_MAX_PER_ADDRESS = 100
A contact consistently sends 10 emails per hour non stop. After 10 hours, emails from this address will not be processed as EGW_MAX_PER_ADDRESS value will be reached thus 240 emails will be received in 24 hour period but only 100 incidents will be created (those emails will be counted) and remaining 140 will be rejected (but still counted).
If the contact still sends 10 emails per hour, then no incidents will be created after 24 hours nor after 72 hours. This is because, rejected for any reason emails are also counted against EGW_MAX_MSG_DURATION, EGW_MAX_PER_ADDRESS configurations. So if at any point of time the product sees 240 emails received from one particular email address, those emails will be discarded.
The contact will be able to create incidents again if they stop emailing and wait 24 hours. Or if they send 4 emails per hour instead of 10, which is 96 emails per 24 hours and is within the limit specified in EGW_MAX_PER_ADDRESS.
For additional information, refer to the Email Loop Detection section in the Online Help User Guide documentation. To access Oracle B2C Service manuals and documentation online, refer to the Documentation for Oracle B2C Service Products.