Does the JobDeliveryStatus of "Sent" get updated after all the configured retry attempts at easylink ? Or its updated on the first delivery attempt and can change to another status later ?
Unfortunately, as usual, the answer is "it depends".
For most standard configurations, the state of the delivery will not change once it has been logged to the database. Once the item-level state goes to "sent" (or "error"), it wouldn't change.
However, there are certain custom retry configurations that can be performed after that initial state gets set. In those cases, it is possible for the state to change from "Error" to "Sent", but not the other way around (i.e. once we believe we have successfully sent the item, we won't try again).
Is there a particular reason you're asking?
Here is the scenario ...Lets say we are sending email to an inbox that is full. We have configured the basic retry mechanism ...for 3 retries and a job-expiration of 5 days. At the end of day 2 we get a "JobDeliveryStatus" of "sent" with a Gamma-code indicating "inbox full". Can we assume then , that all the retry attempts are done at that point ? or wait till the end of 5 days (since we set the JOB Expiration to 5 days) to determine if all retry-attempts were done ?
Prasad
Yes, that means all retry attempts have been executed. The only change after that is the job will go to Complete after the five days.
Tom
Actually, the above comment is not quite true.
For an email delivery, we mark the state as "Sent" as soon as we have handed off the message to the mail transfer agent (MTA). In general, for these deliveries the gamma status is always 0 (successful delivery).
Once we have done that, the retry processing occurs essentially out of the system's control (the MTA takes care of that on its own).
We might get subsequent notifications of either transient or permanent failures in the form of Delivery Status Notifications (DSN's). The information from those DSN's is stored as ArrivalEvents, which can be retrieved via the JobDeliveryStatus query.
So you might see a state of "sent" on your email delivery, and then later on see an arrival event in the JobDeliveryStatus that indicates a failure of some sort.
So then ...the Job Status of "Complete" is really the final status right ? ( In other words, we would need to keep on looking for updates until the job-status changes to "Complete" )
Also can you confirm that , if we set the job expiration to 5 days, the status would change to "Complete" and it will have the relevant updates to the JobDeliveryStatus along with the GAMMA Codes ??
Correct - after the job status goes to "Complete", there will be no further updates do the item level statuses.
Just a reminder that for these types of deliveries (i.e. emails), the Gamma code for an item will not change after it is initially logged. Any additional status would come from new ArrivalEvents that are recorded.
By the way - the JobDeliveryStatus command supports a JournalWindow element. You can use this element to say "only give me items that have had new activity during this time". If you use that element, you could limit the amount of data you need to process each time you query.