Best practices for ensuring your emails reach the inbox
Deliverability is the ability to get your emails into recipients’ inboxes rather than spam folders. Good deliverability requires proper authentication, quality content, and maintaining a good sender reputation.
import arkfrom ark import Arkclient = Ark()def send_to_valid_recipients(recipients, content): valid = [] for recipient in recipients: try: client.suppressions.retrieve(recipient) # Email is suppressed, skip it except ark.NotFoundError: # Not suppressed, safe to send valid.append(recipient) if valid: return client.emails.send_batch( emails=[{**content, "to": [r]} for r in valid] )
Copy
import Ark from 'ark';const client = new Ark();async function sendToValidRecipients(recipients: string[], content: EmailContent) { const valid: string[] = []; for (const recipient of recipients) { try { await client.suppressions.retrieve(recipient); // Email is suppressed, skip it } catch (error) { if (error instanceof Ark.NotFoundError) { // Not suppressed, safe to send valid.push(recipient); } else { throw error; } } } if (valid.length > 0) { return client.emails.sendBatch({ emails: valid.map(to => ({ ...content, to: [to] })), }); }}
Copy
require "ark_email"client = ArkEmail::Client.newdef send_to_valid_recipients(recipients, content) valid = [] recipients.each do |recipient| begin client.suppressions.retrieve(recipient) # Email is suppressed, skip it rescue ArkEmail::Errors::NotFoundError # Not suppressed, safe to send valid << recipient end end if valid.any? client.emails.send_batch( emails: valid.map { |r| content.merge(to: [r]) } ) endend
Never purchase email lists. They contain invalid addresses and uninterested recipients that will damage your reputation.
A bounce rate above 2% signals list quality issues and will harm your sender reputation.Hard bounces (immediate permanent failures) are automatically suppressed by Ark on first occurrence. If you’re seeing high hard bounce rates:
Identify the source: Are bounces from specific domains or your entire list?
Check for typos: Common typos like gmial.com instead of gmail.com
Verify at signup: Use double opt-in for new subscribers
Clean old lists: Remove addresses that haven’t engaged in 6+ months
Validate before import: Use email validation services before importing bulk lists
Soft bounces (temporary failures) are retried automatically up to 18 times. If many soft bounces convert to hard fails:
Check send volume: You may be hitting rate limits at receiving servers
Review message size: Large attachments can cause rejections
Spread sends over time: Avoid sending to one domain in large bursts
Ark protects your reputation automatically. Hard bounces trigger immediate suppression, preventing repeated delivery attempts to invalid addresses. This keeps your bounce rate low and your sender reputation healthy.
post '/webhooks/ark' do event = JSON.parse(request.body.read) if event['event'] == 'MessageBounced' alert_ops("Bounce detected: #{event['payload']}") end if event['event'] == 'MessageComplained' alert_ops("Spam complaint from: #{event['payload']['message']['to']}") end 'OK'end