Mengirim Email
Kirim email transaksional satuan menggunakan endpoint /v3/smtp/email.
Endpoint
POST /v3/smtp/emailIsi permintaan
Email dasar
{ "sender": { "name": "Your App", }, "to": [ { "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", }, "to": [ { "name": "John Doe" } ], "cc": [ { "name": "CC User" } ], "bcc": [ { } ], "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>";
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_sdkfrom 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( 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
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)
{}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
| Parameter | Tipe | Deskripsi |
|---|---|---|
sender | object | Informasi pengirim |
to | array | Array berisi objek penerima |
subject | string | Baris subjek email |
Parameter opsional
| Parameter | Tipe | Deskripsi |
|---|---|---|
htmlContent | string | Konten HTML dari email |
textContent | string | Konten teks dari email |
cc | array | Penerima CC |
bcc | array | Penerima BCC |
replyTo | object | Alamat balasan |
attachments | array | Lampiran berkas |
params | object | Parameter template |
tags | array | Tag email untuk pelacakan |
headers | object | Header 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
- Selalu sertakan konten HTML dan teks untuk keterkiriman yang lebih baik
- Gunakan variabel template alih-alih menggabungkan konten secara manual
- Sertakan informasi pengirim yang benar agar terhindar dari filter spam
- Tambahkan tag untuk pelacakan dan analitik
- Validasi alamat email sebelum mengirim
- 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
- Template email
- Lampiran
- Statistik email