Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

Mengirim Email

Kirim email transaksional satuan menggunakan endpoint /v3/smtp/email.

Endpoint

POST /v3/smtp/email

Isi permintaan

Email dasar

{
"sender": {
"name": "Your App",
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]",
"name": "John Doe"
}
],
"subject": "Welcome to our service!",
"htmlContent": "<html><body><h1>Welcome!</h1><p>Thank you for signing up.</p></body></html>"
}

Email lanjutan

{
"sender": {
"name": "Your App",
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]",
"name": "John Doe"
}
],
"cc": [
{
"email": "[email protected]",
"name": "CC User"
}
],
"bcc": [
{
"email": "[email protected]"
}
],
"subject": "Order Confirmation #{{order_id}}",
"htmlContent": "<html><body><h1>Order Confirmed</h1><p>Your order {{order_id}} has been confirmed.</p></body></html>",
"textContent": "Your order {{order_id}} has been confirmed.",
"params": {
"order_id": "12345"
},
"tags": ["transactional", "order-confirmation"],
"headers": {
"X-Custom-Header": "custom-value"
}
}

Contoh kode

JavaScript/Node.js

const brevo = require('@getbrevo/brevo');
const apiInstance = new brevo.TransactionalEmailsApi();
apiInstance.setApiKey(brevo.TransactionalEmailsApiApiKeys.apiKey, process.env.BREVO_API_KEY);
const sendEmail = async () => {
const sendSmtpEmail = new brevo.SendSmtpEmail();
sendSmtpEmail.subject = "Welcome to our service!";
sendSmtpEmail.htmlContent = "<html><body><h1>Welcome!</h1></body></html>";
sendSmtpEmail.sender = { name: "Your App", email: "[email protected]" };
sendSmtpEmail.to = [{ email: "[email protected]", name: "John Doe" }];
try {
const result = await apiInstance.sendTransacEmail(sendSmtpEmail);
console.log('Email sent:', result);
return result;
} catch (error) {
console.error('Error sending email:', error);
throw error;
}
};

Python

import sib_api_v3_sdk
from sib_api_v3_sdk.rest import ApiException
configuration = sib_api_v3_sdk.Configuration()
configuration.api_key['api-key'] = 'YOUR_API_KEY'
api_instance = sib_api_v3_sdk.TransactionalEmailsApi(sib_api_v3_sdk.ApiClient(configuration))
send_smtp_email = sib_api_v3_sdk.SendSmtpEmail(
to=[{"email": "[email protected]", "name": "John Doe"}],
sender={"name": "Your App", "email": "[email protected]"},
subject="Welcome to our service!",
html_content="<html><body><h1>Welcome!</h1></body></html>"
)
try:
api_response = api_instance.send_transac_email(send_smtp_email)
print(api_response)
except ApiException as e:
print("Exception when calling TransactionalEmailsApi->send_transac_email: %s\n" % e)

cURL

Terminal window
curl -X POST "https://api.brevo.com/v3/smtp/email" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "api-key: YOUR_API_KEY" \
-d '{
"sender": {
"name": "Your App",
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]",
"name": "John Doe"
}
],
"subject": "Welcome to our service!",
"htmlContent": "<html><body><h1>Welcome!</h1></body></html>"
}'

Respons

Respons berhasil (201 Created)

{
"messageId": "<[email protected]>"
}

Respons error

API key tidak valid (401)

{
"code": "unauthorized",
"message": "Invalid API key provided"
}

Format email tidak valid (400)

{
"code": "invalid_parameter",
"message": "Invalid email format in 'to' field"
}

Batas laju terlampaui (429)

{
"code": "too_many_requests",
"message": "Rate limit exceeded"
}

Parameter

Parameter wajib

ParameterTipeDeskripsi
senderobjectInformasi pengirim
toarrayArray berisi objek penerima
subjectstringBaris subjek email

Parameter opsional

ParameterTipeDeskripsi
htmlContentstringKonten HTML dari email
textContentstringKonten teks dari email
ccarrayPenerima CC
bccarrayPenerima BCC
replyToobjectAlamat balasan
attachmentsarrayLampiran berkas
paramsobjectParameter template
tagsarrayTag email untuk pelacakan
headersobjectHeader khusus

Variabel template

Gunakan variabel template pada subjek dan konten Anda:

{
"subject": "Welcome {{firstName}}!",
"htmlContent": "<h1>Hello {{firstName}} {{lastName}}</h1>",
"params": {
"firstName": "John",
"lastName": "Doe"
}
}

Lampiran

Sertakan lampiran berkas:

{
"attachments": [
{
"content": "base64_encoded_content",
"name": "invoice.pdf"
},
{
"url": "https://example.com/document.pdf",
"name": "document.pdf"
}
]
}

Praktik terbaik

  1. Selalu sertakan konten HTML dan teks untuk keterkiriman yang lebih baik
  2. Gunakan variabel template alih-alih menggabungkan konten secara manual
  3. Sertakan informasi pengirim yang benar agar terhindar dari filter spam
  4. Tambahkan tag untuk pelacakan dan analitik
  5. Validasi alamat email sebelum mengirim
  6. Tangani error dengan baik menggunakan logika percobaan ulang

Batas laju

  • Batas laju API: pada tingkatan umum, yang diperoleh setiap paket, endpoint ini mengizinkan 1.000 permintaan per detik dan 3.600.000 per jam. Tingkatan lanjutan (Professional dan Enterprise) mengizinkan 2.000 per detik, dan tingkatan diperluas (Enterprise) 6.000.
  • Volume pengiriman: jumlah email yang dapat Anda kirim ditentukan oleh paket Brevo Anda, terpisah dari batas laju.

Lihat Batas laju dan halaman batas laju Brevo.

Pelacakan

Email yang dikirim melalui endpoint ini otomatis dilacak untuk:

  • Status pengiriman
  • Rasio buka
  • Pelacakan klik
  • Penanganan bounce

Lihat analitik terperinci di dasbor Brevo Anda pada Statistics → Transactional.

Endpoint terkait

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.

Halaman ini sebagai Markdown: send-email.md

Memuat Markdown…
Buka di Claude Buka di ChatGPT