The Email Response Processor

The Email Response Processor is a utility designed to handle both bounced email messages and returned email messages from users asked to reply by email or those who want to unsubscribe from mailing lists. You can use it to automatically handle the contents of any POP3 mailbox.

The Email Response Processor consists of a combination of mail process threads. Each thread processes a set of mailboxes as instructed by a mail script. Two types of threads are included, categorized by the types of mailboxes they process:

  • Reply Process

  • Bounce Process

The following rules apply in general to the Email Response Processor:

  • Each type of mailbox has its own instance of a mail process thread and its own configuration file.

  • Each mail process thread runs on separate threads generated by the Email Response Processor.

  • Each mail process thread has a separate configuration file. The scripts that handle the behavior of each mail process thread are included in the thread’s individual configuration file.

  • The number of mail process threads generated is determined by the number of configuration files passed to the Email Response Processor.

  • The mail process thread handles mailboxes in a round-robin fashion. The threads operate concurrently. Because their operation depends on a number of factors (such as the number of emails in the mailbox, the type of operation performed on each email, and so forth), the order of their operation cannot be predetermined.

The advantage to this design is that mailboxes can be categorized and assigned to different mail process threads, thus improving performance. Each set of mailboxes is treated differently using separate configuration and mail script files. No hardcoded limit exists to the number of mail process threads that can be created—the limit is dependent only on the number of configuration files passed to the Email Response Processor.

The Email Response Processor’s two components, the Reply Process and the Bounce Process, work similarly, each controlled by its own script. The Reply Process or Bounce Process begins by contacting the POP3 server. It opens the first mailbox in its list, reads the messages one at a time, and executes its script once for each message. When the specified number of emails have been processed in the first mailbox (as determined by the maxMailToGetPerPOPSession parameter), that mailbox closes and the Email Response Processor moves on to the next mailbox.

After it has completed processing on all the specified mailboxes, the Email Response Processor stops immediately and waits a specified amount of time before beginning again. If it reaches the limit set in the maxMessagesPerHour configuration parameter, it will stop immediately and wait until the end of the current hour before continuing to the next mailbox. By doing this, the Email Response Processor ensures that it will not use all the available resources and will not overlook a mailbox because another is too active (and thus consuming too many resources).

Note: The Email Response Processor never deletes an email message unless the script specifically instructs it to do so. By default, the Reply Process’s configuration file deletes messages that contain body text such as “Auto Reply,” “automated response,” and similar, and the Bounce Process’s configuration file deletes all bounced messages after they have been processed. Refer to the appropriate configuration file (ReplyProcess.script or BounceProcess.script) for a complete list of such text.

When an email message “bounces,” it means that the mail server has rejected the message. There are many reasons for this, including:

  • The message is too large.

  • The recipient's inbox is full.

  • Something in the message's content triggered a spam filter.

  • The recipient's address isn't valid.

In any case, for whatever reason the email message is rejected, the Email Response Processor must log these bounces so that the administrator can determine whether emails were delivered, and if not, why.

There are three types of bounces: hard, soft, and unknown.

  • A hard bounce is a message that is permanently undeliverable due to an invalid recipient address or because the recipient's mail server is blocking your server.

    Another name for hard bouncing is “Permanent Failure.”

  • A soft bounce occurs if the mail server recognizes the address but cannot deliver the message. This might be because the recipient's inbox is full, the server is down, the connection is broken, or the user has abandoned the mailbox. Emails can also soft-bounce if the sender's mail server doesn't understand why the receiving mail server refused the message. Soft bounces can be temporary problems—for example, the connection breaks during the relay, too many messages swamp the server, or something similar. Most mail servers will retry soft-bouncing messages, but the messages aren't guaranteed to be delivered.

    Another name for soft bouncing is “Persistent Transient Failure.”

  • An unknown bounce is a message for which the Email Response Processor cannot determine a reason for the bounce.

You start and stop Email Response Processor through the Maintain Dialog Servers page in the Online Marketing Control Center.

See Maintaining Dialog Servers.