DEV Community

Cover image for วิธีติดตั้งและใช้งาน Resend CLI
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

วิธีติดตั้งและใช้งาน Resend CLI

Resend CLI

Resend CLI คือเครื่องมือบรรทัดคำสั่งอย่างเป็นทางการสำหรับ Resend ซึ่งเป็นแพลตฟอร์มอีเมลสำหรับนักพัฒนา ติดตั้งได้ง่ายด้วย npm install -g resend-cli หรือ brew install resend/cli/resend ยืนยันตัวตนด้วย resend login แล้วเริ่มส่งอีเมล จัดการโดเมน และควบคุมโครงสร้างพื้นฐานอีเมลของคุณอัตโนมัติจากเทอร์มินัลหรือ CI/CD pipeline

ทดลองใช้ Apidog วันนี้

Resend คืออะไร?

Resend คือ Email API สำหรับนักพัฒนา เชื่อมต่อโดเมน รับ API key แล้วส่งอีเมลแบบ Transactional ได้ทันที เช่น การรีเซ็ตรหัสผ่าน, อีเมลยืนยันการสั่งซื้อ หรือ onboarding อัตโนมัติ

เมื่อวันที่ 13 มีนาคม 2026, Zeno Rocha ผู้ก่อตั้ง Resend ได้เปิดตัว Resend CLI ที่นำโครงสร้างพื้นฐานเดียวกันนี้มาสู่ CLI มี 53 คำสั่งครอบคลุม 13 ทรัพยากร เขียนด้วย TypeScript, โอเพนซอร์ส (MIT) และรองรับ 3 กลุ่มผู้ใช้:

  • มนุษย์: โต้ตอบผ่าน prompt, ตาราง, ตั้งเวลาภาษาธรรมชาติ
  • เอเจนต์ AI: โหมด JSON, idempotency key, ตรวจจับเอเจนต์อัตโนมัติ
  • CI/CD: ใช้ env variable, flag สำหรับ scripting, exit code ที่เชื่อถือได้

💡 หากคุณสร้างแอปที่ต้องส่งอีเมล ต้องมีวิธีทดสอบ Email API ก่อนใช้งานจริง Apidog มอบ UI ฟรีในการทดสอบ REST API รวมถึง Resend Email API โดยไม่ต้องเขียนโค้ด นำเข้า Resend OpenAPI spec, กำหนดค่าสภาพแวดล้อม แล้วรันชุดทดสอบทั้งหมดได้ในที่เดียว

การติดตั้ง Resend CLI

เลือกวิธีติดตั้งที่เหมาะกับระบบของคุณ

ผ่าน cURL (ไบนารีสแตนด์อโลน ไม่ต้องใช้ Node.js)

curl -fsSL https://resend.com/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

จะดาวน์โหลดไบนารีสำหรับ OS ของคุณและเพิ่มใน PATH โดยไม่ต้องมี Node.js

ผ่าน npm

npm install -g resend-cli
Enter fullscreen mode Exit fullscreen mode

ต้องใช้ Node.js 20+ หลังติดตั้งตรวจสอบว่าใช้งานได้ด้วย

resend --version
Enter fullscreen mode Exit fullscreen mode

ผ่าน Homebrew (macOS และ Linux)

brew install resend/cli/resend
Enter fullscreen mode Exit fullscreen mode

เหมาะกับ macOS และ Linux Homebrew จะจัดการอัปเดตให้อัตโนมัติ

ผ่าน PowerShell (Windows)

irm https://resend.com/install.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

หรือดาวน์โหลด .exe โดยตรงจาก GitHub Releases

สำหรับการพัฒนาในเครื่อง

ต้องมี Node.js 20+ และ pnpm:

git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build       # ผลลัพธ์ ./dist/cli.cjs
pnpm build:bin   # ได้ไบนารีเนทีฟที่ ./dist/resend
Enter fullscreen mode Exit fullscreen mode

การยืนยันตัวตนบัญชีของคุณ

เชื่อมต่อ CLI กับบัญชี Resend:

resend login
Enter fullscreen mode Exit fullscreen mode

จะเปิด browser ให้สร้าง API key ใน Resend dashboard และเก็บ credential ที่ ~/.config/resend/credentials.json (permission 0600)

สำหรับ CI/CD หรือสคริปต์ ให้ส่งคีย์โดยตรง:

resend login --key re_xxxxxxxxxxxxx
Enter fullscreen mode Exit fullscreen mode

CLI จะหา API key ตามลำดับ:

  1. Flag --api-key
  2. Env var RESEND_API_KEY
  3. Credential file ที่เก็บไว้

แนะนำ: ใน CI ตั้ง RESEND_API_KEY เป็น secret environment variable:

RESEND_API_KEY=re_xxx resend emails send --from builds@yourco.com --to dev@yourco.com --subject "Build passed" --text "All tests green."
Enter fullscreen mode Exit fullscreen mode

การรองรับหลายบัญชี

สลับโปรไฟล์ได้โดยไม่ต้อง logout:

resend auth switch
Enter fullscreen mode Exit fullscreen mode

หรือระบุโปรไฟล์ในคำสั่ง:

resend <command> --profile production
Enter fullscreen mode Exit fullscreen mode

การส่งอีเมลฉบับแรกของคุณ

ส่งอีเมลด้วย resend emails send ระบุ from, to, subject, และเนื้อหา

ส่งอีเมลแบบข้อความล้วน

resend emails send \
  --from "you@yourdomain.com" \
  --to recipient@example.com \
  --subject "Hello from the CLI" \
  --text "This is a test email sent from the Resend CLI."
Enter fullscreen mode Exit fullscreen mode

ส่งอีเมลแบบ HTML

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Your order is confirmed" \
  --html "<h1>Order confirmed</h1><p>Thanks for your purchase.</p>"
Enter fullscreen mode Exit fullscreen mode

หรือใช้ไฟล์ HTML:

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Welcome aboard" \
  --html-file ./templates/welcome.html
Enter fullscreen mode Exit fullscreen mode

การตั้งเวลาส่ง

ส่งอีเมลแบบตั้งเวลาได้ทั้งวลีภาษามนุษย์และ ISO 8601:

resend emails send \
  --from "you@yourco.com" \
  --to user@example.com \
  --subject "Scheduled check-in" \
  --text "Just checking in." \
  --schedule "tomorrow at 9am"
Enter fullscreen mode Exit fullscreen mode

รองรับ "in 1 hour", "next Monday at 3pm" หรือ ISO timestamp

บันทึก ID อีเมล

ใช้ pipe + jq เพื่อดึง email id:

EMAIL_ID=$(resend emails send \
  --from a@acme.com \
  --to b@acme.com \
  --subject "Test" \
  --text "Hi" | jq -r '.data.id')

echo "Sent email: $EMAIL_ID"
Enter fullscreen mode Exit fullscreen mode

ยกเลิกหรืออัปเดตอีเมลที่ตั้งเวลาไว้

resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"
Enter fullscreen mode Exit fullscreen mode

แสดงรายการอีเมลล่าสุด

resend emails list
Enter fullscreen mode Exit fullscreen mode

ส่งแบบเป็นชุดสูงสุด 100 ฉบับ

สร้าง emails.json:

[
  { "from": "you@yourco.com", "to": "alice@example.com", "subject": "Hi Alice", "text": "Hello!" },
  { "from": "you@yourco.com", "to": "bob@example.com", "subject": "Hi Bob", "text": "Hello!" }
]
Enter fullscreen mode Exit fullscreen mode

ส่ง batch:

resend emails send-batch --file emails.json
Enter fullscreen mode Exit fullscreen mode

หมายเหตุ: ทุก batch request นับเป็น 1 API call (สูงสุด 100 อีเมล/ครั้ง)

การจัดการโดเมนและ API Keys

ต้องมีโดเมนที่ยืนยันแล้วก่อนส่งอีเมล

เพิ่มโดเมน

resend domains create --name yourdomain.com --region us-east-1
Enter fullscreen mode Exit fullscreen mode

ภูมิภาค: us-east-1, eu-west-1, sa-east-1, ap-northeast-1

ยืนยันระเบียน DNS

Resend จะให้ SPF, DKIM, DMARC record ไปเพิ่มใน DNS provider ของคุณ แล้วรัน:

resend domains verify --id <domain-id>
Enter fullscreen mode Exit fullscreen mode

ตรวจสอบสถานะ:

resend domains get --id <domain-id>
Enter fullscreen mode Exit fullscreen mode

กำหนดค่าการติดตามและ TLS

resend domains configure --id <domain-id>
Enter fullscreen mode Exit fullscreen mode

ตั้งค่าการติดตามการเปิด, คลิก, และ custom DKIM

แสดงรายการโดเมนทั้งหมด

resend domains list
Enter fullscreen mode Exit fullscreen mode

จัดการ API Keys

สร้าง key แบบกำหนดขอบเขต:

resend api-keys create
resend api-keys list
resend api-keys delete --id <key-id>
Enter fullscreen mode Exit fullscreen mode

คีย์แบบมีขอบเขตจะจำกัดสิทธิ์แต่ละ integration

คุณสมบัติขั้นสูง: การออกอากาศ, เว็บฮุก, เทมเพลต

Resend CLI รองรับการส่งอีเมลแบบออกอากาศ, จัดการเว็บฮุก, และเทมเพลต HTML

การออกอากาศ

resend broadcasts create
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"
Enter fullscreen mode Exit fullscreen mode

เว็บฮุก

resend webhooks create
resend webhooks list
Enter fullscreen mode Exit fullscreen mode

พัฒนาในเครื่องด้วย:

resend webhooks listen --forward-to http://localhost:3000/webhooks/resend
Enter fullscreen mode Exit fullscreen mode

รองรับ event 17 ประเภท เช่น email.sent, email.delivered, email.opened

เทมเพลต

resend templates create
Enter fullscreen mode Exit fullscreen mode

ใช้ {{variable_name}} สำหรับตัวแปร

ผู้ติดต่อและกลุ่มเป้าหมาย

resend contacts create --audience-id <id> --email user@example.com --first-name "Alice"
resend contacts list --audience-id <id>
resend contacts update --id <contact-id> --unsubscribed false
Enter fullscreen mode Exit fullscreen mode

เรียกใช้การวินิจฉัย

resend doctor
Enter fullscreen mode Exit fullscreen mode

ตรวจสอบสภาพแวดล้อม, API key, โดเมน, และตรวจจับ AI agent เช่น Cursor, Claude Desktop, VS Code, OpenClaw

การใช้ Resend CLI ใน CI/CD pipelines

CLI ออกแบบมาสำหรับ automation โดยเฉพาะ

เอาต์พุตที่เครื่องอ่านได้

ส่งผ่าน pipe หรือใช้ --json เพื่อให้ได้ JSON structured output:

resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Done" --json
Enter fullscreen mode Exit fullscreen mode

หรือ suppress output ทั้งหมดยกเว้น JSON:

resend emails list --quiet | jq '.[0].id'
Enter fullscreen mode Exit fullscreen mode

ยืนยันการดำเนินการแบบ destructive อัตโนมัติ

resend api-keys delete --id <key-id> --yes
Enter fullscreen mode Exit fullscreen mode

ตัวอย่าง GitHub Actions

- name: ส่งการแจ้งเตือนการปรับใช้
  env:
    RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
  run: |
    resend emails send \
      --from deploys@yourco.com \
      --to team@yourco.com \
      --subject "ปรับใช้สู่ Production: ${{ github.sha }}" \
      --text "ปรับใช้คอมมิต ${{ github.sha }} สู่ production แล้ว"
Enter fullscreen mode Exit fullscreen mode

ข้อจำกัดอัตรา (Rate limits)

Resend API จำกัด 2 คำขอต่อวินาทีรวมทุก key ในทีม ส่ง batch ด้วย send-batch (สูงสุด 100 อีเมล/ครั้ง) แทนการวนลูปส่งทีละรายการ

การทดสอบ Email API ของคุณด้วย Apidog

Resend CLI เหมาะสำหรับการใช้งานแบบโต้ตอบหรือ scripting แต่ถ้าต้องทดสอบหรือ explore REST API ของ Resend โดยตรง สามารถใช้ Apidog ได้ฟรี

  • นำเข้า Resend API spec: ดาวน์โหลดจาก resend.com/docs แล้วนำเข้าใน Apidog เพื่อดู endpoints, request/response schema
  • ตั้งค่าสภาพแวดล้อม: สร้าง environment สำหรับ dev/prod, เก็บ RESEND_API_KEY เป็นตัวแปร แล้วอ้างใน request ด้วย {{RESEND_API_KEY}}
  • ทดสอบ logic การส่ง: เรียก POST /emails ใน Apidog พร้อม payload ที่ต้องการ ตรวจสอบ response, email id, และ edge cases
  • ทำให้การทดสอบเป็นอัตโนมัติ: ใช้ test runner ของ Apidog สร้างชุดทดสอบหลายขั้นตอนได้โดยไม่ต้องเขียนโค้ด

ช่วยให้คุณตรวจจับ bug integration ก่อนขึ้น production เมื่อใช้ร่วมกับ Resend CLI คุณจะได้ทั้ง CLI ที่รวดเร็วและ API testing environment ที่ครบเครื่อง

ราคา Resend

CLI ฟรีและโอเพนซอร์ส ราคาจะขึ้นอยู่กับแพลตฟอร์ม Resend:

แผน ราคา อีเมลรายเดือน ขีดจำกัดรายวัน การเก็บรักษาบันทึก
ฟรี $0/เดือน 3,000 100/วัน 1 วัน
Pro $20/เดือน 50,000 ไม่มีขีดจำกัด 3 วัน
Scale $90/เดือน 100,000 ไม่มีขีดจำกัด 7 วัน
Enterprise กำหนดเอง กำหนดเอง กำหนดเอง กำหนดเอง

แผนฟรี:

  • จำกัด 100 อีเมล/วัน เหมาะสำหรับทดสอบและโปรเจกต์เล็ก
  • การวิเคราะห์ (open/click tracking) ใช้ได้เฉพาะแผนเสียเงิน
  • เก็บบันทึกได้ 1 วัน
  • Rate limit 2 req/sec ทุกแผน ใช้ร่วมกันทั้งทีม
  • แผนเสียเงินใช้งานเกินโควต้าได้สูงสุด 5 เท่าของโควต้า

Dedicated IPs มีให้เฉพาะแผน Scale ขึ้นไป ($30/เดือน) เมื่อส่งเกิน 500 อีเมล/วัน

คำถามที่พบบ่อย

Q: จำเป็นต้องมี Node.js เพื่อติดตั้ง Resend CLI หรือไม่?

A: ไม่จำเป็นถ้าติดตั้งด้วย cURL หรือ Homebrew แต่ถ้าใช้ npm ต้องมี Node.js 20+

Q: ทำไมส่งจาก email address ใดก็ไม่ได้?

A: ต้องใช้โดเมนที่ยืนยันแล้ว, เพิ่ม DNS record ที่ Resend กำหนด (SPF, DKIM, DMARC) อีเมลฟรีอย่าง Gmail ใช้เป็น from ไม่ได้

Q: ส่งไปยังอีเมล address ใดก็ได้ในแผนฟรีหรือไม่?

A: ได้ ไม่จำกัดผู้รับ แต่จำกัด 3,000 อีเมล/เดือน และ 100/วัน

Q: การตั้งเวลาด้วยภาษามนุษย์ CLI ทำงานอย่างไร?

A: รองรับวลีเช่น "tomorrow at 9am", "in 2 hours" หรือ ISO8601 เวลายึดตาม timezone ของเครื่อง

Q: ส่งเอาต์พุตผ่าน pipe CLI จะเป็นอะไร?

A: จะออก JSON mode อัตโนมัติ ไม่มี spinner หรือ prompt ไม่ต้องระบุ --json

Q: ใช้ CLI กับหลายบัญชี Resend ได้ไหม?

A: ได้ ใช้ resend login หลายครั้งเพื่อสร้างหลายโปรไฟล์ แล้วสลับด้วย resend auth switch หรือ --profile <name>

Q: Resend CLI เป็นโอเพนซอร์ส?

A: ใช่ MIT license ดูที่ github.com/resend/resend-cli

Q: ต่างกันยังไงระหว่าง --quiet กับ --json?

A: ทั้งคู่ให้ JSON output, --json บังคับ JSON, --quiet ปิด output ที่ไม่ใช่ข้อมูล (spinner, progress) โดยอัตโนมัติ

แหล่งข้อมูลเพิ่มเติม

Top comments (0)