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',
});