# Choose an email source for device rendering

Choose a source based on what you want to verify. A delivered message includes changes made by the sending platform; a template import is useful earlier while editing the design.

| Source | Use it when | Start here |
| --- | --- | --- |
| Stored email | Your application test already received the message in MailSlurp | [Render by email ID](/docs/device-renders/#create-runs-from-stored-email) |
| HTML | You are reviewing template markup before sending | [HTML import](/docs/device-renders/#create-runs-from-raw-html) |
| EML / raw MIME | You have a complete exported email or test fixture | [MIME imports](/docs/device-renders/#create-runs-from-imported-email) |
| Render address | Your ESP or mail client can send a test message | [Send to a render address](/docs/device-renders/#send-to-a-device-render-email-address) |

## Preview an exported file

The file endpoint accepts HTML, EML or a ZIP containing exactly one HTML or EML file, subject to archive limits. Keep the full EML when headers, multipart content or inline attachments affect the result. Do not rename an arbitrary file to `.eml` and assume it becomes valid MIME.

[API endpoint: `createDevicePreviewRunFromFile`](/docs/api/#createDevicePreviewRunFromFile)

For a JSON-based integration, use base64 MIME import; for a byte stream or multipart upload, use the corresponding endpoint documented in [the API workflow](/docs/device-renders/#create-runs-from-imported-email). Choose one source path per render rather than creating duplicate runs for every import form.

## Receive the campaign from your ESP

Create or select a render address with the intended target profile. Send the finished test campaign to it and wait for its submission and run. Use the [ESP guide table](/docs/esps/) for platform-specific steps.

A missing submission means the message has not reached the render workflow yet. A submission with an unfinished run means rendering is still in progress. Inspect these separately when troubleshooting.

[API endpoint: `waitForDevicePreviewEmailSubmissions`](/docs/api/#waitForDevicePreviewEmailSubmissions)

[API endpoint: `waitForDevicePreviewEmailRuns`](/docs/api/#waitForDevicePreviewEmailRuns)

Continue with [targets and profiles](/docs/device-rendering-profiles/) or [CI automation](/docs/device-rendering-ci/).
