Lampiran
Unggah file dan lampirkan ke email keluar. Email masuk dengan lampiran disimpan secara otomatis dan dapat diakses melalui API.
Ikhtisar
AgentSend menangani lampiran file di kedua arah. Untuk email keluar, Anda mengunggah file terlebih dahulu untuk mendapatkan ID lampiran, lalu teruskan ID tersebut saat mengirim pesan. Untuk email masuk, lampiran apa pun yang disertakan pengirim disimpan secara otomatis dan ditampilkan di objek pesan — tidak perlu pekerjaan tambahan.
Lampiran disimpan dengan aman dan disajikan melalui URL presigned berumur pendek. Tautan unduhan kedaluwarsa setelah 1 jam — ambil URL baru dari API saat Anda perlu mengakses file.
Mengunggah Lampiran
Kirim request POST ke /attachments dengan file sebagai multipart/form-data. Respons mengembalikan objek lampiran dengan id yang dapat Anda gunakan saat mengirim pesan.
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"
Properti Lampiran
Setiap objek lampiran berisi field berikut:
| Field | Tipe | Deskripsi |
|---|---|---|
id |
string | Pengenal lampiran unik (prefiks att_). |
filename |
string | Nama file asli seperti yang diunggah atau diterima. |
contentType |
string | Tipe MIME, misalnya application/pdf atau image/png. |
size |
number | Ukuran file dalam byte. |
url |
string | URL unduhan presigned. Kedaluwarsa setelah 1 jam. |
createdAt |
string | Timestamp ISO 8601 saat lampiran disimpan. |
Melampirkan ke Pesan
Teruskan array attachmentIds di body pesan saat mengirim. Anda dapat mereferensikan beberapa lampiran dalam satu pesan.
// 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], }), });
Mengambil Lampiran
Ambil satu lampiran berdasarkan ID dengan GET /attachments/{id}. Respons mencakup url presigned baru yang dapat Anda gunakan untuk mengunduh file.
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());
Lampiran Masuk
Saat email masuk tiba dengan lampiran, AgentSend menyimpan setiap file secara otomatis. Objek pesan akan menyertakan array attachments — setiap entri berisi metadata yang diperlukan untuk mengidentifikasi dan mengunduh file.
{
"id": "msg_xyz",
"subject": "Here's the contract",
"attachments": [
{
"id": "att_a1b2c3",
"filename": "contract.pdf",
"contentType": "application/pdf",
"size": 204800
}
]
}Untuk mengunduh lampiran masuk, teruskan id-nya ke GET /attachments/{id} untuk menerima URL unduhan presigned seperti yang ditunjukkan di bagian Mengambil Lampiran di atas.
Batas Ukuran
Ukuran maksimum untuk satu lampiran adalah 25 MB. Ini berlaku untuk unggahan dan lampiran masuk — file yang melebihi batas ini pada email masuk dibuang dan catatan pemotongan ditambahkan ke pesan.
Banyak server email penerima juga memberlakukan batas ukuran lampiran mereka sendiri (sering 10–25 MB). Jaga lampiran tetap kecil atau pertimbangkan untuk menautkan ke file yang di-hosting secara eksternal untuk keterkiriman terbaik.