iContact publishes no SMTP hostname, no relay port and no relay credential format. Programmatic sending runs through the REST API at app.icontact.com/icp under header Api-Version: 2.2-you create a message, then dispatch it. The “iContact SMTP relay” pages that rank in search are Campaigner documentation on a shared help platform, and their settings will not work in an iContact account.
If you came here for a host and port to paste into WordPress or a monitoring agent, iContact offers none and no setting will make one appear. The useful answer splits three ways: authenticate your sending domain so campaigns pass SPF, DKIM and DMARC; drive iContact from your own code through its REST API; and put a real relay behind anything transactional. If you are still choosing a platform, the closest list-and-campaign peers are Constant Contact, AWeber, GetResponse and Mailchimp-and of those only Mailchimp offers a relay, as a paid add-on.
| SMTP relay | Not offered. No hostname, port or relay credential exists in iContact’s docs or in any official SDK. |
| Sending method | REST API, base app.icontact.com/icp, header Api-Version: 2.2. Sandbox at app.sandbox.icontact.com/icp. |
| Send flow in code | POST /messages to create, then POST /sends to dispatch. Both scoped to /a/{accountId}/c/{clientFolderId}/. |
| Sending domain auth | Custom DKIM using both CNAME and TXT records, plus a self-managed DMARC policy. See SPF and DKIM setup. |
| Transactional email | Out of scope. Pair iContact with a relay: Postmark, Amazon SES, SMTP2GO or Resend. |
| Inbound / parse | None. Event data flows outbound only, via Web Hooks and the opens, clicks and bounces endpoints. |
| Official docs | API Getting Started Guide · DKIM, SPF and DMARC |
iContact is a marketing-first ESP and its whole documented surface is list-and-campaign shaped: contacts, lists, subscriptions, segments, messages, campaigns and sends. Every send is addressed to an audience, not to an individual recipient handed over at connection time. An SMTP relay is the opposite shape, a stateless pipe that takes one envelope at a time and asks nothing about consent. Bolting that on means a second reputation model, a second suppression system and a second billing model, which is why most ESPs in this bracket skip it.
The absence is structural, not an oversight. iContact’s published article index contains no relay hostname, no port table and no transactional-send topic, and the three official PHP libraries on github.com/icontact contain HTTP calls only. Read this as a high-confidence assessment of the published surface rather than a quotation: iContact has never published a page saying “we do not offer SMTP”, it simply has no SMTP pages.
Receipts, password resets and order confirmations should not run through a marketing ESP even when one offers a relay. Put that traffic on a dedicated relay, on its own subdomain, isolated from your newsletter’s reputation. Postmark suits modest volume where receipt deliverability outweighs price; Amazon SES wins on unit cost at scale; SMTP2GO and MailerSend sit in between; Resend suits teams templating in code. Each gets its own DKIM key and SPF include.
If the goal is pushing contacts from your site into iContact or triggering a campaign from your app, the REST API is the supported path. Every call is scoped as /icp/a/{accountId}/c/{clientFolderId}/{resource}: GET /a/ for the account ID, GET /a/{accountId}/c/ for the client folder ID, then contacts, subscriptions, messages and sends underneath. Authentication is three custom headers-Api-AppId, Api-Username, Api-Password-plus Api-Version: 2.2. Call the API directly rather than importing the official PHP wrapper: its last commit was January 2, 2018, no Python, Node, Ruby, Java or Go client exists, and the PHP code disables TLS peer verification.
For WordPress, note the split: the official iContact Lead Forms plugin embeds subscribe forms and pushes signups into your lists, but does not make WordPress send its own mail through iContact. Password resets, WooCommerce order emails and form notifications still leave through PHP mail() unless an SMTP plugin points them at a relay. No-code teams can cover most contact-sync work with the official Zapier app, with 8 triggers and 8 actions including Send HTML Message.
Cron output, backup reports, uptime alerts and CI failures need a plain SMTP endpoint, and this is the request iContact cannot satisfy. Point them at a relay that publishes standard ports and accepts arbitrary recipients: Amazon SES, SMTP2GO, Brevo or Elastic Email, most free at notification volumes. Keep them on an operational subdomain such as alerts.example.com: machine mail is high-volume, low-engagement and often addressed to dead mailboxes.
This is the part that actually matters for iContact, and the work most people are really after when they search for SMTP settings. Since the Gmail, Yahoo and Microsoft bulk-sender rules took effect, a sender without aligned authentication is not at a disadvantage, it is rejected or filed as spam.
iContact generates your DKIM records per account, and the setup uses both CNAME and TXT record types, so a checker looking for only one gives a false negative. Take the literal names and values from the iContact interface, never from a blog or the Campaigner relay pages below; selectors are account-specific and a wrong one fails silently.
; iContact Custom DKIM, record TYPES are documented; the literal names ; and values are per-account. Copy them from the iContact UI. SELECTOR._domainkey.example.com. IN CNAME VALUE-SHOWN-IN-ICONTACT SELECTOR._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=KEY-SHOWN-IN-ICONTACT" ; SPF, ONE TXT record per domain. Merge iContact's include into the ; existing record. Never publish a second v=spf1 line. example.com. IN TXT "v=spf1 include:INCLUDE-HOST-SHOWN-IN-ICONTACT ~all" ; Verify after propagation dig +short CNAME SELECTOR._domainkey.example.com dig +short TXT example.com
Two rules govern the SPF line regardless of provider. A domain may publish exactly one v=spf1 TXT record, two is a permanent error, so if Google Workspace or Microsoft 365 is already there, merge iContact’s include into the existing string. And SPF permits at most 10 DNS lookups, each include: costing one; a domain carrying a mail host, a CRM, a help desk, iContact and a relay can breach that ceiling and start failing with no visible change. iContact publishes a GoDaddy and Cloudflare guide; on Cloudflare, leave DKIM CNAMEs DNS-only rather than proxied.
DMARC passes only when an authenticated identity aligns with the visible From domain. With Custom DKIM in place your signing domain matches your own and DKIM alignment holds, the entire point of the custom setup. SPF behaves differently: the envelope return-path belongs to the provider’s bounce domain, so SPF may authenticate while failing alignment. That is normal, because DMARC needs only one aligned mechanism, but it means DKIM does the real work, and a broken DKIM record takes DMARC with it.
; Start in monitor mode and read the reports before tightening _dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com; adkim=r; aspf=r; pct=100" ; After 2-4 weeks of clean aggregate reports, ramp gradually _dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.com"
Publish p=none first, collect aggregate reports for at least two weeks, and confirm iContact sends appear as DKIM-aligned passes before moving to quarantine. iContact keeps a warning article, DMARC Reject Policy and Email Deliverability, because a premature p=reject destroys campaign delivery instantly and looks like a deliverability problem rather than a DNS one.
iContact publishes no numeric throughput figures, and this page will not invent them. The documented constraint is commercial rather than technical: your ceiling is a contact or subscriber count set by your plan tier, and crossing it changes your invoice rather than stopping your send.
| Limit | iContact position |
|---|---|
| Emails per hour | Not published. No official per-hour or per-day throughput figure exists. |
| Recipients per message | Not published. Sends address lists and segments, so the practical ceiling is your plan’s contact limit. |
| Contact / subscriber ceiling | Set by plan tier. Two counting models, subscriber-based and contact-based, treat unsubscribed, bounced and pending records differently. |
| Behaviour past the ceiling | Not blocked, billed. Overage is documented, so the first sign is usually a larger invoice. |
| API request rate | No documented ceiling. Collections page with limit and offset and return a total. |
An approval-gated Pay Per Send mode also exists, which matters if your volume is spiky rather than steady. Audit contact statuses before any bulk import: under a contact-based plan, records you assumed were inert still count toward the ceiling.
This is the defining iContact trap. Search engines surface relay articles on icontact.my.site.com/Help/-an iContact-branded domain, covering relay setup, requirements and response codes. They are not iContact docs: that host fronts a shared knowledge base for several sibling brands, every article canonicalises to knowledge.campaigner.com, and the pages carry a Campaigner title. iContact’s own help center is help.icontact.com/customers/. Settings from those pages will not authenticate against an iContact account.
The most expensive DNS mistake here. Teams often publish a reject policy the same afternoon they add DKIM records, before propagation completes and before a single report has been read. If the DKIM CNAME is proxied, mistyped, or duplicated by a registrar that appends the domain to an already-qualified name, alignment fails and every campaign is rejected at the gateway. Confirm the record in iContact, confirm it with dig, then sit at p=none for a fortnight.
Every iContact data call lives under /icp/a/{accountId}/c/{clientFolderId}/. Posting straight to /contacts fails, and the error rarely explains why. Resolve both IDs first and cache them; they do not change. It is the commonest first-hour blocker when replacing an SMTP integration with the API.
There is no Authorization header to fall back on. iContact uses three custom headers-Api-AppId, Api-Username and Api-Password-plus Api-Version: 2.2. The AppId comes from registering an application in the developer portal; the Api-Password is application-specific, not your UI sign-in password. There is no OAuth, Basic auth or bearer token.
Run two senders, cleanly separated by subdomain. Keep marketing on the domain you already send campaigns from, say news.example.com-authenticated with iContact’s Custom DKIM records. Put transactional traffic on a second subdomain such as mail.example.com, authenticated by the relay’s own DKIM key. Each builds its own reputation, so a bad campaign week cannot drag password resets into spam, and both inherit your DMARC policy at _dmarc.example.com.
Keep the systems of record separate too. iContact owns consent, list membership and unsubscribes; the relay owns nothing but delivery. Do not route marketing through the relay to save money, and do not push transactional recipients into an iContact list: buying a product is not opting into a newsletter.
Three collisions are worth designing against. The first is DMARC: two senders on one domain means two DKIM keys and two SPF includes, and adding the relay’s include to your root record can push past the 10-lookup limit and break iContact’s authentication. Separate subdomains avoid it, because each carries its own SPF record and lookup budget.
The second is double-sending. If a signup triggers both an iContact welcome automation and a transactional welcome from your app, the customer gets two emails seconds apart. Decide once who owns each lifecycle message: purchase and account events belong to the relay, time and segment triggers to iContact.
The third is suppression. An unsubscribe in iContact does not exist in your relay, and a hard bounce in your relay does not exist in iContact. Neither tells the other. Use iContact’s Web Hooks resource plus its bounce and unsubscribe endpoints to mirror suppression into your own database, and treat that database as the authority both systems read before a send. Otherwise you keep mailing addresses half your stack knows are dead.
No. iContact’s complete published article index contains no SMTP relay documentation of any kind, no hostname, no port, no relay credentials, and its three official PHP SDKs contain HTTP API calls only. Sending programmatically means creating a message, then dispatching it via the sends resource.
There are none. Any host and port presented as iContact SMTP settings comes from a different product and will not authenticate. If a tool requires SMTP credentials, it needs a relay such as Postmark, Amazon SES or SMTP2GO, configured independently of iContact.
Because it is. Those articles live on a shared help platform used by several sibling brands; every one canonicalises to knowledge.campaigner.com and carries a Campaigner page title. iContact’s own help center, help.icontact.com/customers/, has no relay content at all.
Not in the way the term normally means. You can dispatch a message to a list through the API, but there is no per-recipient transactional endpoint, no relay and no separate transactional reputation. Receipts and password resets belong on a dedicated relay on its own subdomain.
Use iContact’s Custom DKIM flow, which generates account-specific records. It uses both CNAME and TXT record types, so verify both after publishing. Add iContact’s SPF include to your single existing v=spf1 record rather than creating a second one, and watch the 10-lookup limit. On Cloudflare, leave the DKIM CNAME DNS-only rather than proxied.
Call the REST API at https://app.icontact.com/icp with headers Api-AppId, Api-Username, Api-Password and Api-Version: 2.2. Resolve your account ID from GET /a/ and your client folder ID from GET /a/{accountId}/c/, then work under that scope for contacts, subscriptions, messages and sends. A sandbox exists at app.sandbox.icontact.com/icp. For no-code, the Zapier app exposes 8 triggers and 8 actions.
This review follows our email infrastructure testing methodology. We disclose affiliate relationships in our editorial independence policy.