# Resend queues ## Queue producer ```ts import { enqueueEmail } from '@workermailer/resend/queue'; await enqueueEmail(env.EMAIL_QUEUE, { mailerOptions: { apiKey: env.RESEND_API_KEY, from: env.RESEND_FROM }, emailOptions: { from: 'Acme Alerts ', to: 'alice@example.com', subject: 'Queued Resend delivery', text: 'This send came from Cloudflare Queues.' } }); ``` ## Queue consumer ```ts import { createQueueHandler } from '@workermailer/resend/queue'; const handler = createQueueHandler({ onSuccess: (result) => console.log('Delivered', result.emailOptions.subject), onError: (result) => console.error('Failed', result.error) }); export default { async queue(batch: MessageBatch) { return handler(batch); } }; ``` ## Behavior - successful sends call `message.ack()` - failed sends call `message.retry()` - each result keeps the original `emailOptions` for downstream logging ## Recommended use Use queues when delivery should happen in the background or when you want retries owned by Cloudflare Queues instead of the request handler.