Skip to content
View as Markdown

SMTP connections ​

A connection is the SMTP login for one sending address. Every email MarleyFetch sends goes out through one of your connections, so it is delivered by your provider, from your domain, with your reputation.

Add connections on the Connections page. The login is tested before it is saved, and the password is encrypted at rest.

Provider settings ​

Pick a preset and most fields fill themselves in. For reference:

ProviderHostPortUsernamePassword
Gmailsmtp.gmail.com587your addressApp Password (needs 2-Step Verification)
Google Workspacesmtp.gmail.com587your addressApp Password; your admin must allow SMTP
Outlook / Hotmailsmtp-mail.outlook.com587your addressaccount password
Microsoft 365smtp.office365.com587your addressaccount password; SMTP AUTH must be enabled for the mailbox
Yahoo Mailsmtp.mail.yahoo.com465your addressApp Password
iCloud Mailsmtp.mail.me.com587your addressapp-specific password from appleid.apple.com
Zoho Mailsmtp.zoho.com465your addressaccount or app password
SendGridsmtp.sendgrid.net587the literal word apikeyyour SendGrid API key
Brevosmtp-relay.brevo.com587your addressSMTP key from Brevo → SMTP & API
Amazon SESemail-smtp.<region>.amazonaws.com587SES SMTP usernameSES SMTP password (not your AWS access key)
Any other hostyour host587, 465 or 2525usually your addressyour password

Only the standard submission ports are accepted: 587 and 2525 use STARTTLS, 465 uses TLS. Encryption follows from the port, so you never set it separately.

Most failed connections are the password

Gmail, Workspace, Yahoo and iCloud reject your normal password over SMTP. Create an app password and use that. Microsoft 365 tenants often have SMTP AUTH switched off until an admin enables it.

Choosing the sender: from ​

Every send request can include from. It must be the address of one of your connections, and it decides which connection sends:

json
{ "from": "billing@yourcompany.com", "to": "customer@example.com", "subject": "Invoice", "text_body": "..." }
  • With from — MarleyFetch sends through the connection with that address, or returns 403 CONNECTION_NOT_FOUND if you have none.
  • Without from — it uses your default connection. Your first connection becomes the default automatically; pick another on the Connections page (⋮ → Make Default). If you delete the default, your oldest remaining connection takes over.

An API key can also be locked to one connection, which overrides both.

Quotas and pacing ​

Each connection has a quota: how many emails it may send per day or per hour. Presets start at the provider's published limit (for example 500/day for Gmail, 2,000/day for Workspace), and you can change the number and the window when you add or edit the connection. The Connections page shows how much of it is used.

Keep the quota at or below what your provider allows. Going over their limit gets your account throttled or suspended by the provider, not by MarleyFetch.

What happens when a limit is hit:

Situation/send/enqueue and batches
Connection quota used up429 QUOTA_EXCEEDED with details.resetsAtWait for the next window, then send
Sending too fast, or the provider pushed back429 RATE_LIMITED with details.retryAfter (seconds)Back off and retry automatically
Provider kept rejecting sends, so the connection was paused403 CONNECTION_NOT_FOUND or CONNECTION_PAUSEDWait until it resumes
You disabled the connection403 CONNECTION_NOT_FOUNDNot sent

The Free plan also caps sending at 100 emails a day (429 DAILY_LIMIT_REACHED); see Plans & limits.

Disabling and deleting ​

Disable a connection on the Connections page to stop all sending through it without losing its settings, and enable it again later. API keys locked to a deleted connection stop working.

Plan limits ​

The Free plan allows 1 connection; Pro is unlimited.