Gửi email
Gửi từng email giao dịch bằng endpoint /v3/smtp/email.
Endpoint
POST /v3/smtp/emailNội dung yêu cầu
Email cơ bản
{ "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 nâng cao
{ "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" }}Ví dụ mã nguồn
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>" }'Phản hồi
Phản hồi thành công (201 Created)
{}Phản hồi lỗi
Khóa API không hợp lệ (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Định dạng email không hợp lệ (400)
{ "code": "invalid_parameter", "message": "Invalid email format in 'to' field"}Vượt giới hạn tần suất (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded"}Tham số
Tham số bắt buộc
| Tham số | Kiểu | Mô tả |
|---|---|---|
sender | object | Thông tin người gửi |
to | array | Mảng các đối tượng người nhận |
subject | string | Dòng tiêu đề email |
Tham số tùy chọn
| Tham số | Kiểu | Mô tả |
|---|---|---|
htmlContent | string | Nội dung HTML của email |
textContent | string | Nội dung văn bản của email |
cc | array | Người nhận CC |
bcc | array | Người nhận BCC |
replyTo | object | Địa chỉ trả lời |
attachments | array | Tệp đính kèm |
params | object | Tham số của mẫu email |
tags | array | Thẻ email dùng để theo dõi |
headers | object | Header tùy chỉnh |
Biến trong mẫu email
Dùng biến mẫu trong tiêu đề và nội dung email:
{ "subject": "Welcome {{firstName}}!", "htmlContent": "<h1>Hello {{firstName}} {{lastName}}</h1>", "params": { "firstName": "John", "lastName": "Doe" }}Tệp đính kèm
Thêm tệp đính kèm:
{ "attachments": [ { "content": "base64_encoded_content", "name": "invoice.pdf" }, { "url": "https://example.com/document.pdf", "name": "document.pdf" } ]}Thực hành tốt nhất
- Luôn kèm cả nội dung HTML và văn bản để cải thiện khả năng gửi đến hộp thư
- Dùng biến mẫu thay vì ghép chuỗi nội dung
- Điền đầy đủ thông tin người gửi để tránh bộ lọc thư rác
- Thêm thẻ phục vụ theo dõi và phân tích
- Kiểm tra tính hợp lệ của địa chỉ email trước khi gửi
- Xử lý lỗi khéo léo bằng logic thử lại
Giới hạn tần suất
- Giới hạn tốc độ API: ở mức general, mà mọi gói đều có, endpoint này cho phép 1.000 yêu cầu mỗi giây và 3.600.000 mỗi giờ. Mức advanced (Professional và Enterprise) cho phép 2.000 mỗi giây, và mức extended (Enterprise) cho phép 6.000.
- Khối lượng gửi: số email bạn có thể gửi do gói Brevo của bạn quyết định, tách biệt với giới hạn tốc độ.
Xem Giới hạn tốc độ và trang giới hạn tốc độ của Brevo.
Theo dõi
Email gửi qua endpoint này được tự động theo dõi các chỉ số:
- Trạng thái gửi
- Tỷ lệ mở
- Theo dõi lượt nhấp
- Xử lý thư trả về
Xem phân tích chi tiết trong bảng điều khiển Brevo tại Statistics → Transactional.
Endpoint liên quan
- Mẫu email
- Tệp đính kèm
- Thống kê email