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

Herve Kom

Herve Kom

17 March 2026

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

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

Resend CLI

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

Resend คืออะไร?

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

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

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

ปุ่ม

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

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

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

curl -fsSL https://resend.com/install.sh | bash

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

ผ่าน npm

npm install -g resend-cli

ต้องใช้ Node.js เวอร์ชัน 20 หรือใหม่กว่า หลังจากติดตั้งแล้ว ให้ยืนยันว่าใช้งานได้:

resend --version

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

brew install resend/cli/resend

นี่เป็นตัวเลือกที่สะอาดที่สุดบน macOS Homebrew จะจัดการการอัปเดตโดยอัตโนมัติ

ผ่าน PowerShell (Windows)

irm https://resend.com/install.ps1 | iex

คุณยังสามารถดาวน์โหลดไบนารี .exe ได้โดยตรงจาก หน้า GitHub Releases

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

หากคุณต้องการมีส่วนร่วมในการพัฒนา CLI หรือสร้างจากซอร์สโค้ด คุณจะต้องมี 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

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

เรียกใช้ resend login เพื่อเชื่อมต่อ CLI เข้ากับบัญชี Resend ของคุณ:

resend login

คำสั่งนี้จะเปิดเบราว์เซอร์ของคุณ นำคุณไปสู่การสร้าง API key ในแดชบอร์ด Resend และจัดเก็บข้อมูลรับรองของคุณในเครื่องที่ ~/.config/resend/credentials.json พร้อมสิทธิ์ที่จำกัด 0600

สำหรับสภาพแวดล้อมที่ไม่ต้องมีการโต้ตอบ (CI/CD, สคริปต์) ให้ข้ามขั้นตอนเบราว์เซอร์และส่งคีย์โดยตรง:

resend login --key re_xxxxxxxxxxxxx

เมื่อจัดเก็บแล้ว คุณไม่จำเป็นต้องยืนยันตัวตนใหม่สำหรับทุกคำสั่ง CLI จะหา API key ของคุณตามลำดับนี้:

  1. แฟล็ก --api-key (จะเขียนทับทุกอย่าง)
  2. ตัวแปรสภาพแวดล้อม RESEND_API_KEY
  3. ไฟล์ข้อมูลรับรองที่จัดเก็บไว้

สำหรับ CI pipelines การตั้งค่า RESEND_API_KEY เป็นตัวแปรสภาพแวดล้อมแบบลับเป็นวิธีมาตรฐาน:

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

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

หากคุณทำงานกับองค์กรหรือทีม Resend หลายแห่ง CLI ก็รองรับสิ่งนั้นด้วยเช่นกัน สลับระหว่างโปรไฟล์ที่จัดเก็บไว้โดยไม่ต้องออกจากระบบ:

resend auth switch

หรือส่งโปรไฟล์เฉพาะสำหรับคำสั่งเดียว:

resend <command> --profile production

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

คำสั่งหลักสำหรับการส่งคือ resend emails send อย่างน้อยที่สุด คุณต้องมีที่อยู่ผู้ส่ง (จากโดเมนที่ยืนยันแล้ว), ผู้รับ, หัวเรื่อง และเนื้อหา

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

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."

ส่งอีเมลแบบ 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>"

หรือชี้ไปยังไฟล์ HTML ในเครื่อง:

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

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

CLI จะแยกวิเคราะห์วันที่ในภาษามนุษย์ควบคู่ไปกับ ISO 8601 timestamps:

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

ทำงานได้กับวลีต่างๆ เช่น "in 1 hour", "next Monday at 3pm" หรือ ISO timestamp เต็มรูปแบบ

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

เมื่อมีการส่งผ่านไปป์ (piped) CLI จะเปลี่ยนเป็นเอาต์พุต JSON โดยอัตโนมัติ ส่งผ่าน jq เพื่อบันทึก 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"

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

resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"

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

resend emails list

ส่งแบบเป็นชุดสูงสุด 100 ฉบับพร้อมกัน

สร้างไฟล์ 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!" }
]

จากนั้นส่งแบบเป็นชุด:

resend emails send-batch --file emails.json

คำขอแบบเป็นชุดแต่ละครั้งจะนับเป็นการเรียก API หนึ่งครั้งต่ออัตราการจำกัดของคุณ แม้ว่าจะส่งอีเมลได้สูงสุดถึง 100 ฉบับก็ตาม

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

ก่อนที่คุณจะสามารถส่งอีเมลได้ คุณต้องมีโดเมนที่ยืนยันแล้ว CLI จะนำคุณผ่านวงจรชีวิตของโดเมนทั้งหมด

เพิ่มโดเมน

resend domains create --name yourdomain.com --region us-east-1

ภูมิภาคที่รองรับ: us-east-1, eu-west-1, sa-east-1, ap-northeast-1 เลือกภูมิภาคที่ใกล้กับผู้ใช้ของคุณมากที่สุดเพื่อลดความล่าช้า

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

หลังจากสร้างโดเมนแล้ว Resend จะให้ระเบียน DNS ที่คุณต้องเพิ่ม (SPF, DKIM, DMARC) เมื่อคุณเพิ่มระเบียนเหล่านั้นไปยังผู้ให้บริการ DNS ของคุณแล้ว ให้เรียกใช้:

resend domains verify --id <domain-id>

ตรวจสอบสถานะจนกว่าจะส่งกลับ "verified":

resend domains get --id <domain-id>

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

resend domains configure --id <domain-id>  # การกำหนดค่าแบบโต้ตอบ

คุณสามารถเปิดใช้งานการติดตามการเปิด, การติดตามการคลิก และ DKIM แบบกำหนดเองผ่านคำสั่งนี้ได้

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

resend domains list

จัดการ API Keys

เพื่อความปลอดภัย ให้สร้าง API Keys ที่มีขอบเขต (scoped) สำหรับแต่ละบริการหรือสภาพแวดล้อม แทนที่จะแชร์คีย์เดียวในทุกที่:

resend api-keys create  # แบบโต้ตอบ, ให้คุณกำหนดขอบเขตต่อโดเมนได้
resend api-keys list
resend api-keys delete --id <key-id>

คีย์แบบมีขอบเขตจะจำกัดสิ่งที่แต่ละ Integration สามารถทำได้ คีย์ที่มีขอบเขตเฉพาะโดเมนเดียวจะไม่สามารถเข้าถึงโดเมนอื่น ๆ หรือการตั้งค่าบัญชีของคุณได้

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

นอกเหนือจากการส่งอีเมลแต่ละฉบับแล้ว Resend CLI ยังรองรับการใช้งานหลักอีกสามอย่าง: การออกอากาศจำนวนมาก, การจัดการเว็บฮุก และเทมเพลตที่ใช้ซ้ำได้

การออกอากาศ

การออกอากาศช่วยให้คุณสามารถส่งอีเมลฉบับเดียวกันไปยังรายชื่อผู้ติดต่อจำนวนมาก คุณจะร่างข้อความก่อน จากนั้นจึงส่งหรือตั้งเวลา:

resend broadcasts create   # การสร้างฉบับร่างแบบโต้ตอบ
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"

เว็บฮุก

เว็บฮุกให้เหตุการณ์การส่งแบบเรียลไทม์แก่คุณ: การตีกลับ, การเปิด, การคลิก, รายงานสแปม CLI จัดการวงจรชีวิตทั้งหมด:

resend webhooks create   # ลงทะเบียนปลายทางใหม่
resend webhooks list

สำหรับการพัฒนาในเครื่อง ให้ใช้คำสั่ง webhooks listen เพื่อพร็อกซีเหตุการณ์เว็บฮุกไปยัง localhost ของคุณ:

resend webhooks listen --forward-to http://localhost:3000/webhooks/resend

วิธีนี้ช่วยให้คุณไม่ต้องตั้งค่า ngrok หรือเครื่องมือ tunneling ที่คล้ายกัน CLI รองรับ 17 ประเภทเหตุการณ์ รวมถึง email.sent, email.delivered, email.bounced, email.opened และ email.clicked

เทมเพลต

เทมเพลตช่วยให้คุณสามารถสร้าง HTML อีเมลที่นำกลับมาใช้ใหม่ได้พร้อมตัวแปรแบบไดนามิก:

resend templates create  # ตัวสร้างเทมเพลตแบบโต้ตอบ

ตัวแปรใช้ไวยากรณ์ {{variable_name}} พร้อมค่าสำรอง เมื่อสร้างแล้ว ให้อ้างอิงเทมเพลตด้วย ID เมื่อส่งอีเมล

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

Resend มีการจัดการผู้ติดต่อในตัวสำหรับอีเมลการตลาด:

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

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

คำสั่ง doctor จะตรวจสอบสภาพแวดล้อมของคุณและแจ้งปัญหาที่พบ:

resend doctor

มันจะตรวจสอบเวอร์ชัน CLI ของคุณ, ความถูกต้องของ API key, โดเมนที่ยืนยันแล้ว และยังตรวจจับ AI coding agents (Cursor, Claude Desktop, VS Code, OpenClaw) ได้อีกด้วย

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

CLI ถูกสร้างมาให้ทำงานได้ดีในสภาพแวดล้อมอัตโนมัติ รูปแบบบางอย่างที่ควรรู้:

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

ทุกครั้งที่คุณส่งเอาต์พุตผ่านไปป์ (pipe) หรือส่ง --json CLI จะเปลี่ยนเป็น JSON แบบมีโครงสร้างโดยอัตโนมัติ ไม่มีตัวหมุนแสดงสถานะ (spinners), ไม่มีพร้อมท์แบบโต้ตอบ:

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

แฟล็ก --quiet ยังจะระงับเอาต์พุตทั้งหมด ยกเว้น JSON:

resend emails list --quiet | jq '.[0].id'

ยืนยันการดำเนินการที่อาจก่อให้เกิดความเสียหายโดยอัตโนมัติ

ใช้ --yes เพื่อข้ามพร้อมท์การยืนยันในสคริปต์:

resend api-keys delete --id <key-id> --yes

ตัวอย่าง 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 แล้ว"

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

อัตราจำกัดของ Resend API คือ 2 คำขอต่อวินาที ซึ่งใช้ร่วมกันสำหรับ API keys ทั้งหมดของทีมคุณ เมื่อส่งแบบเป็นชุด ให้ใช้ send-batch (สูงสุด 100 อีเมลต่อการเรียกใช้) แทนที่จะวนลูปส่งทีละรายการ

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

Resend CLI นั้นยอดเยี่ยมสำหรับการใช้งานแบบโต้ตอบและสคริปต์ง่ายๆ อย่างไรก็ตาม เมื่อคุณกำลังสร้างแบ็กเอนด์ที่เรียกใช้ REST API ของ Resend โดยตรง คุณจำเป็นต้องมีวิธีในการสำรวจและทดสอบปลายทางเหล่านั้นก่อนที่จะเขียนโค้ดแอปพลิเคชัน

Apidog ตอบโจทย์นั้น มันเป็นไคลเอ็นต์ API ฟรีที่ช่วยให้คุณสามารถส่งคำขอ HTTP, ตรวจสอบการตอบกลับ, จัดระเบียบกรณีทดสอบของคุณ และตั้งค่าสภาพแวดล้อมสำหรับ API keys และการกำหนดค่าต่างๆ

นี่คือวิธีที่ Apidog เข้ากับเวิร์กโฟลว์การผสานรวม Resend ทั่วไป:

นำเข้า Resend API spec. Resend มีเอกสารอ้างอิง API ที่ resend.com/docs คุณสามารถนำเข้า API spec เข้าสู่ Apidog เพื่อรับมุมมองที่เป็นระเบียบของทุกปลายทาง รวมถึง schema ของคำขอ/การตอบกลับ

ตั้งค่าสภาพแวดล้อม. ใน Apidog ให้สร้างสภาพแวดล้อมสำหรับการพัฒนาและ production จัดเก็บ RESEND_API_KEY ของคุณเป็นตัวแปรสภาพแวดล้อมและอ้างอิงในคำขอของคุณด้วย {{RESEND_API_KEY}} สลับระหว่างสภาพแวดล้อมได้ด้วยการคลิกเพียงครั้งเดียว

ทดสอบตรรกะการส่งของคุณ. ก่อนที่จะเขียนโค้ดเพื่อส่งอีเมลจากแอปพลิเคชันของคุณ ให้เรียกใช้ปลายทาง POST /emails ใน Apidog ด้วย payload ที่คุณต้องการ ตรวจสอบการตอบกลับ, ตรวจสอบว่า ID อีเมลกลับมาอย่างถูกต้อง และยืนยันพฤติกรรมสำหรับกรณีขอบ (ช่องข้อมูลหายไป, ที่อยู่ไม่ถูกต้อง ฯลฯ)

ทำให้การทดสอบเป็นอัตโนมัติ. ตัวเรียกใช้การทดสอบของ Apidog ช่วยให้คุณสามารถเชื่อมโยงการเรียก API และยืนยันค่าการตอบกลับได้ คุณสามารถตั้งค่าการทดสอบที่ส่งอีเมลทดสอบ, ดึงข้อมูลตาม ID, จากนั้นตรวจสอบสถานะ โดยไม่ต้องเขียนโค้ดทดสอบใดๆ

สิ่งนี้ช่วยตรวจจับข้อบกพร่องในการผสานรวมก่อนที่จะปรากฏใน production เมื่อใช้ร่วมกับ Resend CLI สำหรับการพัฒนาในเครื่อง คุณจะมีทั้งเครื่องมือเทอร์มินัลที่รวดเร็วและสภาพแวดล้อมการทดสอบ API ที่ครอบคลุม

ราคา Resend

ตัว CLI เองนั้นฟรีและเป็นโอเพนซอร์ส การกำหนดราคาจะใช้กับแพลตฟอร์ม Resend:

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

สิ่งที่คุณควรรู้เกี่ยวกับแผนฟรี:

Dedicated IPs เป็น Add-on ราคา $30/เดือน สำหรับแผน Scale ซึ่งมีให้เมื่อคุณส่งอีเมลมากกว่า 500 ฉบับ/วัน

ปุ่ม

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

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

ไม่จำเป็นสำหรับวิธีการติดตั้งด้วย cURL หรือ Homebrew ซึ่งจะดาวน์โหลดไบนารีแบบสแตนด์อโลนที่สร้างไว้ล่วงหน้า ส่วนการติดตั้งผ่าน npm ต้องใช้ Node.js เวอร์ชัน 20 ขึ้นไป

ทำไมฉันถึงส่งจากอีเมลแอดเดรสใดก็ได้ไม่ได้?

Resend กำหนดให้ต้องใช้โดเมนที่ยืนยันแล้ว คุณต้องเป็นเจ้าของโดเมน, เพิ่มระเบียน DNS ที่ Resend กำหนด (SPF, DKIM, DMARC) และผ่านขั้นตอนการยืนยัน ผู้ให้บริการอีเมลฟรีเช่น Gmail ไม่รองรับการใช้งานเป็นที่อยู่ผู้ส่ง

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

ใช่ แผนฟรีไม่มีข้อจำกัดผู้รับ แต่จะจำกัดคุณไว้ที่ 3,000 อีเมล/เดือน โดยมีขีดจำกัดสูงสุด 100 ฉบับ/วัน

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

CLI จะแยกวิเคราะห์วลีต่างๆ เช่น "tomorrow at 9am", "in 2 hours", "next Friday at 3pm" หรือ ISO 8601 timestamps มาตรฐาน เวลาจะถูกตีความตามเขตเวลาท้องถิ่นของระบบของคุณ เว้นแต่คุณจะระบุเป็นอย่างอื่น

จะเกิดอะไรขึ้นเมื่อฉันส่งเอาต์พุตผ่านไปป์?

CLI จะตรวจจับเมื่อมีการส่งผ่านไปป์และเปลี่ยนไปใช้เอาต์พุต JSON เท่านั้นโดยอัตโนมัติ โดยไม่มีตัวหมุนแสดงสถานะหรือพร้อมท์ คุณไม่จำเป็นต้องส่ง --json โดยชัดเจน

ฉันสามารถใช้ CLI กับบัญชี Resend หลายบัญชีได้หรือไม่?

ใช่ ใช้ resend login หลายครั้งเพื่อจัดเก็บโปรไฟล์ที่แตกต่างกัน จากนั้นใช้ resend auth switch เพื่อสลับระหว่างโปรไฟล์ หรือส่ง --profile <ชื่อ> ในคำสั่งใดก็ได้เพื่อใช้โปรไฟล์ที่เฉพาะเจาะจง

Resend CLI เป็นโอเพนซอร์สหรือไม่?

ใช่ เป็นโอเพนซอร์สภายใต้ใบอนุญาต MIT และโฮสต์อยู่ที่ github.com/resend/resend-cli

อะไรคือความแตกต่างระหว่าง --quiet และ --json?

ทั้งคู่สร้างเอาต์พุต JSON --json บังคับให้เป็นเอาต์พุต JSON ส่วน --quiet จะระงับตัวหมุนแสดงสถานะและตัวบ่งชี้ความคืบหน้า ซึ่งหมายถึงโหมด JSON โดยปริยาย ในทางปฏิบัติแล้วทั้งสองทำงานเหมือนกันสำหรับรูปแบบเอาต์พุต; --quiet ยังลบเอาต์พุตที่ไม่ใช่ข้อมูลทั้งหมดออกด้วย

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

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API

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