Skip to main content
Resend Docs

Search documentation

Type to search this documentation.

On this pageOverview

Chat SDK Attachments

When someone sends an email with file attachments, the adapter makes them available on message.raw.attachments. Each attachment includes the filename, MIME type, and a URL to download the content.

TypeScript
interface ResendAttachment {
  filename: string;
  contentType: string;
  url?: string;
}
Field Type Description
filename string Original filename (e.g., invoice.pdf)
contentType string MIME type (e.g., application/pdf)
url string Optional download URL for the attachment content
TypeScript
chat.onNewMention(async (thread, message) => {
  const attachments = message.raw?.attachments ?? [];

  if (attachments.length === 0) {
    await thread.subscribe();
    await thread.post('Got your email — no attachments found.');
    return;
  }

  const summary = attachments
    .map((a) => `${a.filename} (${a.contentType})`)
    .join(', ');

  await thread.subscribe();
  await thread.post(`Received ${attachments.length} attachment(s): ${summary}`);
});

For more on receiving email attachments outside the Chat SDK, see Receiving Attachments.

Attachments Example

Detects attachments and replies with a summary

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu