I've been doing what I call "post-order" emails for a few different events recently. The customer purchases through TNEW as usual, and we add a tiny bit of dynamic content to the TNEW confirmation email that basically says "further details are forthcoming". With the TNEW confirmation serving as a purchase receipt, the customer then receives an additional email within 3 minutes containing additional details -- in our case, something like a secret link to a watch page, or a unique calendar event add widget.
This is implemented by running a SQL Agent Job every 30 seconds that scans for new orders and adds rows to T_TEMPLATE_QUEUE. You would need to build an HTML template for this email. In your case, prior to queueing the email as part of the SQL Agent Job, you would have some SQL code that assigns one of the unique 16-digit codes to the SLI no purchased by the customer -- you would need to load these codes into a local table ahead of time, and devise a table schema so that you can persist the SLI-code assignment. Inside your HTML template, you would pull the codes out of this table based on the SLIs in the order -- likely using the Custom/ DataService endpoints.
Some other posts I've written recently that relate to this: