Eloqua email templates: HTML upload, field merges and DKIM
Upload your own HTML to Oracle Eloqua, lock template regions with elq-edit, give field merges a default value, and align DKIM and SPF for DMARC.
5 MB
On this page
- How do you upload an HTML email to Eloqua?
- Source Editor or Design Editor: which one keeps your HTML?
- How do you make regions editable in an Eloqua email template?
- How do you create a field merge in Eloqua?
- What does Eloqua send when the field is empty?
- Where do Eloqua field merges work, and where not?
- When should you use dynamic content instead of a default?
- How do you test field merges before sending?
- How do you set up DKIM and SPF for Eloqua?
- Does Eloqua mail pass DMARC alignment?
- What are Eloqua's branded domains for links and images?
- How do you check it once it is live?
- Sources
To get your own HTML into Oracle Eloqua, upload it under Assets, Emails as an HTML file or a ZIP with its images, up to 5 MB, and it opens in the Source Editor. To make it a template others cannot break, add protections: elq-edit="true" and elq-delete="true" mark the only regions a marketer may change. Field merges carry their own default value for an empty field, and a branded subdomain with DKIM on your domain lets Eloqua mail pass DMARC.
Menu paths are as of October 2026. Where the classic UI and the new Redwood interface differ, both are given.
How do you upload an HTML email to Eloqua?
The upload wizard is under Assets, Emails, Upload an Email (in Redwood, Actions, Upload an Email). It scans the file for malware and refuses one over 5 MB or with a <script> tag. For a ZIP you choose where images are stored, then, image by image, use a file of the same name already in Eloqua, upload a replacement, or let it upload as it is. Eloqua rewrites each image reference to point at its image library. A last step asks which links to track with a redirect, and the email opens in the Source Editor.
Oracle's HTML code requirements ask for absolute image paths, no CSS on <body>, no <iframe> or <form>, and no <html>, <head> or <body> inside text or shared content sections. They also list twelve class names the editor styles itself with, among them .body, .main and .elq-responsive, so rename yours if they clash. The page sets no width limit.
Source Editor or Design Editor: which one keeps your HTML?
What older guides call the HTML editor is now the Source Editor: your code, with Eloqua components such as images, field merges and dynamic content dragged into it. The Design Editor is the drag-and-drop builder and writes its own HTML. It takes custom code only as snippets in a code content block, and Oracle notes that tracking IDs are not added to links there. For hand-coded email, use the Source Editor.
Eloqua can still rewrite your code in three places:
- The classic preview pane. Double-click a section with a
<table>or<div>tag to edit it with Eloqua's tools, and the source is updated at once. Edit in the code pane when the markup matters. - Redwood's Design view. Oracle says changes there may update the underlying HTML, and to keep the Visual Editor locked when you need precise control.
- Components. Dynamic content, shared content and signature layouts cannot be edited in the source, only in their own editors.
The Redwood Source Editor is in Controlled Availability, by service request, and Oracle advises launching campaign emails from the classic editor for now.
How do you make regions editable in an Eloqua email template?
Templates need the Manage Templates permission and live under Assets, Emails, Manage Templates (in Redwood, Templates in the page selector). Start from a Blank HTML Template or upload one through the wizard. The subject line and preview text are not saved with a template, and editing one does not change emails already made from it.
Protections decide what a marketer may change, and Oracle documents one method per editor:
| Editor | How a region becomes editable |
|---|---|
| Design Editor | Settings, Protected Content: allow changes to email style, to email design, and to the content of the components you select. Content changes are off by default. |
| Classic Source Editor | Right-click an element, Mark as Editable, name it, and tick Allow Delete if it may be removed. |
| Redwood Source Editor | Settings, Enable template protection, which locks every section. Then allow edit or delete section by section. Allow changes to design, which lets users add components, exists only in Redwood. |
In code they are two attributes, which Oracle says you can type in the Source Editor yourself. That helps if the right-click menu never appears, since Oracle's classic editor page also says right-click is disabled there.
<td elq-edit="true">Headline and body copy</td>
<tr elq-edit="true" elq-delete="true"><td>Webinar promo</td></tr>They go on <table>, <tr>, <td>, <div> and <p>, on images, and on the spans that hold shared content, dynamic content, signature layouts and cloud content. Never on links, other spans or formatting tags.
Locked
No attribute, so the logo row stays as the template built it.
Editable
The marketer can rewrite what is in the cell, but cannot remove the cell.
Editable
Oracle lists image elements too, so the picture can be swapped.
Editable and deletable
The whole row can be edited, or taken out of one email.
Not where Oracle says it goes
Oracle says not on links, spans or formatting tags. Put it on the cell.
Locked
Locked, so nobody can delete the footer from an email.
Orange: the attribute that opens a regionNo attribute: lockedDashed: on an element Oracle rules out
How do you create a field merge in Eloqua?
A field merge is a library component, not a tag you type. It pulls one value from a contact, account, event, event session or custom object field. The sixth type, query string, only fills form fields and is not available in emails.
To create one, go to Assets, Components, Field Merge and click New (in Redwood, Create). Name it, enter a default value for records with nothing in the field, choose Contact Fields or Account Fields under Merge From, pick the field, and save. Leave Allow URLs in field merge unticked unless the field holds a link: by default Eloqua strips URLs from merged values.
In the Design Editor, insert it with the field merge button in the text toolbar, and it shows highlighted in yellow. In the Source Editor, drag it from the Field Merge browser. Oracle writes it in code as a span holding the merge's name:
<span class="eloquaemail">field_merge_name</span>In a link, Eloqua converts the span when you save. The result is a tilde syntax, which the Design Editor also writes, with spaces and hyphens in the name turned into underscores:
~~eloqua..type--emailfield..syntax--[field_merge_name]~~What does Eloqua send when the field is empty?
The default value, in place of the merge. Oracle's example default for First Name is "valued customer", so the greeting reads "Hi valued customer,". The default replaces only the merge, so write it for the sentence: "there" gives "Hi there,". If the default is left blank, Oracle's pages do not say what is sent.
The line in the email, as the Source Editor holds it
Hi <span class="eloquaemail">FirstName</span>,
Underlined in orange: the default value, sent in place of the empty field
Merged values are HTML encoded by default, which Oracle warns can change how data displays. And do not hide empty names by giving the contact field itself a default value: Oracle's Engage page says that can put incorrect values in Engage email.
Where do Eloqua field merges work, and where not?
| Place | Field merges | What Oracle says |
|---|---|---|
| Email body | Yes | Every type except query string. |
| Subject line | Yes | Settings, Insert, Field Merge. A renamed merge can show its old name, so preview it. |
| Link URLs | Query string only | After the ?, never in the path, where the link will not work. Values are always HTML encoded. |
| Preview text | Not documented | The preview text page does not mention merges, and Eloqua's preview cannot show preview text. |
| Shared content | Yes | Text, images, links and field merges. |
| Dynamic content | Yes | Field merges can sit inside it. |
| Engage | Contact fields only | Other merge types do not function there. |
When should you use dynamic content instead of a default?
A default changes a word, not the sentence. To send "Hi Ada," to known contacts and "Hello," to the rest, use dynamic content: versions of a block chosen by rules on contact, account, custom object or event data. Rules run from the top down, and a contact who matches none gets the Default content, so put the plain greeting there and the named one in a rule on First Name. Oracle does not list the comparison operators, so check that yours can test for an empty value. Dynamic content works in subject lines too. For a block that is the same everywhere, such as a footer with an account field merge, use shared content.
How do you test field merges before sending?
Preview, under Actions once the email is saved, renders it for up to ten contacts with sender, subject, signature, header and footer, and sends nothing. Test sends go only to contacts in your database, with TEST before the subject; in the Source Editor that is Actions, Test Content. Keep a test contact with an empty First Name: it is the only way to see the blank-default case.
How do you set up DKIM and SPF for Eloqua?
New accounts start non-branded, and Oracle says each must convert to a branded domain before its first campaign. Oracle sets this up with you. In Eloqua the result is read-only under Assets, Email Setup, Email Defaults, and changes go through a service request. What Oracle's authentication setup page asks for:
| Part | What Oracle says |
|---|---|
| Sending domain | A subdomain unique to Eloqua, such as go.example.com. Not the one your microsites use, and without "email", "sales" or "marketing" in it, which can draw extra scanning. The 25D release notes add that it should not be shared with other platforms. |
| Bounceback | An address on that subdomain, such as bounce@go.example.com. The Reply-To should be a monitored mailbox off the bounceback subdomain. |
| SPF | Your IT team publishes SPF records for the sending subdomains and Eloqua's IP addresses during setup. The details are in My Oracle Support Doc ID 2133235.1, which needs a customer login. |
| DKIM | Eloqua signs with a private key on Oracle's servers, and you publish the public key in your DNS. If signature rules send as your corporate domain, the key goes there too. |
| Feedback loops | After DKIM, a service request gets Yahoo's feedback loop, Microsoft SNDS and JMRP enabled. Without DKIM you are not eligible. |
Oracle's public help gives neither the DKIM selector nor whether the record is a TXT or a CNAME; the record comes from Oracle. Once mail flows, read the selector from the s= tag of a sent message.
Does Eloqua mail pass DMARC alignment?
It can, by design. Since the 25D release, the From address must sit on the subdomain of a configured bounceback domain. The grace period ended with 26B in May 2026, and a From address that does not match now fails validation and blocks the send. Gmail, Yahoo, Outlook and similar mailbox domains are refused outright.
| Header | Domain | Checked by |
|---|---|---|
| Return-Path, the bounceback | go.example.com | SPF |
DKIM-Signature: d= | The domain your DKIM public key is published on | DKIM |
| From | go.example.com | DMARC, which compares the two above with it |
SPF passes for the bounceback domain, which is the From domain, so it aligns even in strict mode. DKIM aligns in the default relaxed mode when d= is your organizational domain or the subdomain. The mechanics are in SPF, DKIM and DMARC explained.
Oracle says DMARC lives in the From domain's DNS and is the customer's job: Eloqua supplies no record. Receivers try _dmarc.go.example.com, then the organizational domain, so one record at _dmarc.example.com covers the subdomain, with its sp tag setting the subdomain policy if present.
What are Eloqua's branded domains for links and images?
| Branded domain | What Eloqua serves from it | How it is secured |
|---|---|---|
| Application domain | View online links, the open tracking pixel, system action links such as unsubscribe, and the https link in the List-Unsubscribe header | Eloqua's SSL process: generate a CSR, buy the certificate, upload it |
| Image domain | Images, PDFs and every file in File Storage | A service request, and a certificate of its own |
Both rows are from Oracle's page on securing branded domains. Branded tracking domains can share the application domain's certificate, and with Automated Certificate Management turned on you do not buy or renew certificates at all, though IT may need to change a record or CNAME.
How do you check it once it is live?
Send a test to a mailbox outside your company and open the full headers. Authentication-Results should show SPF, DKIM and DMARC passing, the Return-Path should be on your Eloqua subdomain, and the DKIM-Signature should carry your domain in d=. Check the records with the free DKIM checker, using the s= selector, and the email domain checker. What Gmail, Yahoo and Microsoft require of bulk senders is in the sender requirements guide.
The free editor exports HTML with an eloquaemail span for each merge, named for the field merges you create. Before the copy goes into Eloqua, draft it in the free mail-merge preview, which shows each message against a sample of your list and flags every empty merge field. Draftship also builds and runs outbound inside a client's own platform.
Sources
- docs.oracle.comThe upload wizard is under Assets, Emails, Upload an Email (in Redwood, Actions, Upload an Email)
- docs.oracle.comOracle's HTML code requirements ask for absolute image paths, no CSS on <body>, no <iframe> or <form>, and no <html>, <head> or <body> inside text or shared content sections
- docs.oracle.comWhat older guides call the HTML editor is now the Source Editor: your code, with Eloqua components such as images, field merges and dynamic content dragged into it
- docs.oracle.comThe Design Editor is the drag-and-drop builder and writes its own HTML
- docs.oracle.comtracking IDs are not added to links there
- docs.oracle.comDouble-click a section with a <table> or <div> tag to edit it with Eloqua's tools, and the source is updated at once
- docs.oracle.commay update the underlying HTML
- docs.oracle.comcannot be edited in the source
- docs.oracle.comTemplates need the Manage Templates permission and live under Assets, Emails, Manage Templates (in Redwood, Templates in the page selector)
- docs.oracle.comsubject line and preview text are not saved with a template
- docs.oracle.comediting one does not change emails already made from it
- docs.oracle.comone method per editor
- docs.oracle.comA field merge is a library component, not a tag you type
- docs.oracle.comnot available in emails
- docs.oracle.comTo create one, go to Assets, Components, Field Merge and click New (in Redwood, Create)
- docs.oracle.comfield merge button in the text toolbar
- docs.oracle.comconverts the span when you save
- docs.oracle.comAnd do not hide empty names by giving the contact field itself a default value: Oracle's Engage page says that can put incorrect values in Engage email
- docs.oracle.comrenamed merge can show its old name
- docs.oracle.comThe preview text page does not mention merges, and Eloqua's preview cannot show preview text
- docs.oracle.comText, images, links and field merges
- docs.oracle.comcan sit inside it
- docs.oracle.comTo send "Hi Ada," to known contacts and "Hello," to the rest, use dynamic content: versions of a block chosen by rules on contact, account, custom object or event data
- docs.oracle.comPreview, under Actions once the email is saved, renders it for up to ten contacts with sender, subject, signature, header and footer, and sends nothing
- docs.oracle.comTest sends go only to contacts in your database, with TEST before the subject; in the Source Editor that is Actions, Test Content
- docs.oracle.commust convert to a branded domain before its first campaign
- docs.oracle.comAssets, Email Setup, Email Defaults
- docs.oracle.comWhat Oracle's authentication setup page asks for
- docs.oracle.comThe 25D release notes add that it should not be shared with other platforms
- docs.oracle.comfails validation and blocks the send
- rfc-editor.orgReceivers try _dmarc.go.example.com, then the organizational domain, so one record at _dmarc.example.com covers the subdomain, with its sp tag setting the subdomain policy if present
- docs.oracle.comBoth rows are from Oracle's page on securing branded domains
- docs.oracle.comshare the application domain's certificate