Anexos
Faça upload de arquivos e anexe-os a emails enviados. Emails recebidos com anexos são automaticamente armazenados e acessíveis via API.
Visão Geral
O AgentSend lida com anexos de arquivo em ambas as direções. Para emails enviados, você faz upload de um arquivo primeiro para obter um ID de anexo, depois passa esse ID ao enviar uma mensagem. Para emails recebidos, quaisquer anexos que o remetente incluiu são automaticamente armazenados e exibidos no objeto da mensagem — nenhum trabalho extra necessário.
Os anexos são armazenados com segurança e servidos via URLs pré-assinadas de curta duração. Os links de download expiram após 1 hora — busque uma URL nova da API quando precisar acessar um arquivo.
Fazendo Upload de um Anexo
Envie uma requisição POST request to /attachments com o arquivo como multipart/form-data. . A resposta retorna um objeto de anexo com um id que você pode usar ao enviar uma mensagem.
curl -X POST https://api.agentsend.io/attachments \ -H "x-api-key: $AGENTSEND_API_KEY" \ -F "file=@/path/to/report.pdf"
const form = new FormData(); form.append("file", fileBlob, "report.pdf"); const res = await fetch("https://api.agentsend.io/attachments", { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY }, body: form, }); const attachment = await res.json(); console.log(attachment.id); // e.g. "att_a1b2c3d4"
Propriedades do Anexo
Todo objeto de anexo contém os seguintes campos:
| Campo | Tipo | Descrição |
|---|---|---|
id |
string | Identificador único do anexo (prefixo att_). |
filename |
string | Nome do arquivo original conforme enviado ou recebido. |
contentType |
string | Tipo MIME, ex. application/pdf or image/png. |
size |
number | Tamanho do arquivo em bytes. |
url |
string | URL de download pré-assinada. Expira após 1 hora. |
createdAt |
string | Data e hora ISO 8601 de quando o anexo foi armazenado. |
Anexando a Mensagens
Passe um array attachmentIds no corpo da mensagem ao enviar. Você pode referenciar múltiplos anexos em uma única mensagem.
// 1. Upload the file const form = new FormData(); form.append("file", fileBlob, "invoice.pdf"); const { id: attachmentId } = await fetch("https://api.agentsend.io/attachments", { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY }, body: form, }).then(r => r.json()); // 2. Send the message with the attachment await fetch(`https://api.agentsend.io/inboxes/${inboxId}/messages`, { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ to: ["customer@example.com"], subject: "Your invoice", bodyText: "Please find your invoice attached.", attachmentIds: [attachmentId], }), });
Recuperando Anexos
Busque um único anexo por ID com GET /attachments/{id}. A resposta inclui uma URL url pré-assinada nova que você pode usar para baixar o arquivo.
const attachment = await fetch( `https://api.agentsend.io/attachments/${attachmentId}`, { headers: { "x-api-key": process.env.AGENTSEND_API_KEY } } ).then(r => r.json()); // Download the file using the presigned URL const fileData = await fetch(attachment.url).then(r => r.arrayBuffer());
Anexos Recebidos
Quando um email de entrada chega com anexos, o AgentSend armazena cada arquivo automaticamente. O objeto da mensagem incluirá um array attachments — cada entrada contém os metadados necessários para identificar e baixar o arquivo.
{
"id": "msg_xyz",
"subject": "Here's the contract",
"attachments": [
{
"id": "att_a1b2c3",
"filename": "contract.pdf",
"contentType": "application/pdf",
"size": 204800
}
]
}Para baixar um anexo recebido, passe seu id to GET /attachments/{id} para receber uma URL de download pré-assinada conforme mostrado na seção Recuperando Anexos acima.
Limites de Tamanho
O tamanho máximo para um único anexo é 25 MB. Isso se aplica tanto a uploads quanto a anexos de entrada — arquivos que excedem este limite em emails de entrada são descartados e uma nota de truncamento é adicionada à mensagem.
Muitos servidores de email receptores também aplicam seus próprios limites de tamanho de anexo (geralmente 10–25 MB). Mantenha os anexos pequenos ou considere vincular a arquivos hospedados externamente para melhor entregabilidade.