coss.comemailUpcoming
8.7k

Initialization

import { coss } from '@coss';

coss.email.init({
  apiKey: process.env.COSS_KEY,
  environment: 'production', // or 'sandbox'
});

Sending Emails

// Send a transactional email
await coss.email.send({
  from: '[email protected]',
  to: '[email protected]',
  subject: 'Welcome to Our App!',
  text: 'Thanks for signing up.',
  html: '<p>Thanks for signing up.</p>',
});

Domains

// Create and verify a sending domain
await coss.email.domains.create({
  domain: 'yourapp.com',
});

// List verified domains
await coss.email.domains.list();

// Delete a domain
await coss.email.domains.delete('domain_abc123');

Templates

// Create an email template
await coss.email.templates.create({
  name: 'Welcome Template',
  subject: 'Welcome!',
  html: '<h1>Welcome {{name}}</h1>',
});

// Retrieve a template
await coss.email.templates.retrieve('tmpl_abc123');

// Update a template
await coss.email.templates.update('tmpl_abc123', {
  html: '<h1>Hello {{name}}!</h1>',
});

// Delete a template
await coss.email.templates.delete('tmpl_abc123');

Webhooks

// Webhook events
coss.email.webhooks.on('email.delivered', (event) => {
  console.log('Email delivered:', event.data);
});

coss.email.webhooks.on('email.bounced', (event) => {
  console.log('Email bounced:', event.data);
});

Utilities

// Validate webhook signature
const isValid = coss.email.utils.verifySignature({
  payload: req.body,
  signature: req.headers['coss-email-infra-signature'],
  secret: 'whsec_email_123',
});