ส่งอีเมล
ส่งอีเมล transactional ทีละฉบับด้วยเอนด์พอยต์ /v3/smtp/email
เอนด์พอยต์
POST /v3/smtp/emailเนื้อหาของคำขอ
อีเมลแบบพื้นฐาน
{ "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>"}อีเมลแบบขั้นสูง
{ "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" }}ตัวอย่างโค้ด
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>" }'การตอบกลับ
การตอบกลับเมื่อสำเร็จ (201 Created)
{}การตอบกลับเมื่อเกิดข้อผิดพลาด
คีย์ API ไม่ถูกต้อง (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}รูปแบบอีเมลไม่ถูกต้อง (400)
{ "code": "invalid_parameter", "message": "Invalid email format in 'to' field"}เกินขีดจำกัดอัตราการเรียกใช้ (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded"}พารามิเตอร์
พารามิเตอร์ที่จำเป็น
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
sender | object | ข้อมูลผู้ส่ง |
to | array | อาร์เรย์ของอ็อบเจกต์ผู้รับ |
subject | string | หัวเรื่องของอีเมล |
พารามิเตอร์เสริม
| พารามิเตอร์ | ชนิด | คำอธิบาย |
|---|---|---|
htmlContent | string | เนื้อหา HTML ของอีเมล |
textContent | string | เนื้อหาแบบข้อความล้วนของอีเมล |
cc | array | ผู้รับสำเนา |
bcc | array | ผู้รับสำเนาลับ |
replyTo | object | ที่อยู่สำหรับตอบกลับ |
attachments | array | ไฟล์แนบ |
params | object | พารามิเตอร์ของเทมเพลต |
tags | array | แท็กอีเมลสำหรับการติดตามผล |
headers | object | เฮดเดอร์ที่กำหนดเอง |
ตัวแปรในเทมเพลต
ใช้ตัวแปรเทมเพลตในหัวเรื่องและเนื้อหาของคุณได้
{ "subject": "Welcome {{firstName}}!", "htmlContent": "<h1>Hello {{firstName}} {{lastName}}</h1>", "params": { "firstName": "John", "lastName": "Doe" }}ไฟล์แนบ
แนบไฟล์ไปกับอีเมล
{ "attachments": [ { "content": "base64_encoded_content", "name": "invoice.pdf" }, { "url": "https://example.com/document.pdf", "name": "document.pdf" } ]}แนวทางปฏิบัติที่ดี
- ใส่ทั้งเนื้อหา HTML และข้อความล้วนเสมอ เพื่อเพิ่มโอกาสส่งถึงกล่องขาเข้า
- ใช้ตัวแปรเทมเพลต แทนการต่อสตริงเนื้อหาเอง
- ระบุข้อมูลผู้ส่งให้ครบถ้วน เพื่อเลี่ยงตัวกรองสแปม
- เพิ่มแท็ก สำหรับการติดตามผลและการวิเคราะห์
- ตรวจสอบความถูกต้องของที่อยู่อีเมล ก่อนส่ง
- จัดการข้อผิดพลาดอย่างเหมาะสม ด้วยกลไกลองส่งซ้ำ
ขีดจำกัดอัตราการเรียกใช้
- บัญชีฟรี: 300 อีเมลต่อวัน
- บัญชีแบบชำระเงิน: ขึ้นอยู่กับแพ็กเกจของคุณ
- ขีดจำกัดต่อช่วงเวลาสั้น: 100 อีเมลต่อนาที
การติดตามผล
อีเมลที่ส่งผ่านเอนด์พอยต์นี้จะถูกติดตามผลโดยอัตโนมัติในด้านต่อไปนี้
- สถานะการนำส่ง
- อัตราการเปิดอ่าน
- การติดตามการคลิก
- การจัดการอีเมลตีกลับ
ดูข้อมูลวิเคราะห์โดยละเอียดได้ในแดชบอร์ด Brevo ของคุณที่ Statistics → Transactional
เอนด์พอยต์ที่เกี่ยวข้อง
- เทมเพลตอีเมล
- ไฟล์แนบ
- สถิติอีเมล