Inherits EventHandler
Responsible for attempting to deliver a queued message and updating the corresponding row in the deliveries table.
Creates a new DeliveryAgent object to deliver the message with the given id using the specified SMTP client. The owner will be notified upon completion.
Returns a pointer to a newly-created DSN for the given message. The sender is filled in from qs (from fetchSender()), while the recipients are filled in from qr (from fetchRecipients()). Both queries are assumed to have completed successfully.
Returns true if the message was delivered (or the delivery was permanently abandoned), and the spooled message may be deleted.
Returns true if this DeliveryAgent has finished processing deliveries for the message submitted to it.
Updates all recipients for the given dsn to reflect that the message delivery request has expired.
Returns a pointer to a Query that selects and locks the single row from deliveries that matches the given messageId.
Begins to fetch a message with the given messageId, and returns a pointer to the newly-created Message object, which will be filled in by the message fetcher.
Returns a pointer to a Query that will fetch rows for the given delivery id from delivery_recipients.
Returns a pointer to a Query to fetch the address information for a message sender with the given sender id.
Returns a pointer to a newly-created Injector to inject a bounce message derived from the specified dsn, or 0 if the DSN was for a bounce already. The caller must call Injector::execute() when appropriate.
Logs a description of the delivery we are about to attempt, based on the specified dsn.
Updates the row in deliveries matching delivery, as well as any related rows in delivery_recipients, based on the status of dsn. Returns the number of recipients for whom delivery is pending. The queries needed to perform the update are enqueued directly into d->t, for the caller to execute at will.
This web page based on source code belonging to Oryx Mail Systems GmbH. All rights reserved.