סקירת TrekMail REST API למפתחים
למדו כיצד פועל TrekMail REST API, כולל אימות באמצעות אסימוני Bearer, גישה לפי תוכנית, מגבלות קצב ותבניות תגובה.
פרטי המאמר
סוג, רמת קושי, תוכניות ומידע על עדכון אחרון.
▼
פרטי המאמר
סוג, רמת קושי, תוכניות ומידע על עדכון אחרון.
- סוג
- חומר עזר
- רמת קושי
- בינוני
- תוכניות
- Nano · Starter · Pro · Agency
- עודכן לאחרונה
- 23 באוג׳ 2026
TrekMail API מאפשר לכם לנהל דומיינים, תיבות דואר, העברה, DNS, העברות דואר ופעולות Webmail מתוך לקוח HTTP או סוכן AI. האפשרויות כוללות קריאה ושליחה של דואר, טיוטות, תזמון, תיקיות, אנשי קשר, לוחות שנה, זהויות, תבניות ושולחים חסומים. בקשות מאומתות משתמשות באסימון Bearer, התגובות הן JSON, ופעילות ה-API מתועדת לביקורת.
מה מקבלים
- REST API v1 עם תבנית בקשה ותגובה של JSON.
- אימות באמצעות אסימון Bearer: ללא קובצי Cookie או הפעלות עבור קריאות API מאומתות.
- מפתחות אידמפוטנטיות בפעולות הכתיבה שדורשות אותם, למניעת עבודה כפולה במהלך ניסיונות חוזרים.
- הגבלת קצב לכל אסימון עם כותרות
Retry-After. - יומן ביקורת שמוצג בלוח הבקרה תחת AI Agents & API → Audit Log.
- שרת MCP עם קטלוג שמסונן לפי פרטי האימות, התעבורה והגדרות הבטיחות של החיבור הנוכחי. לכן חיבור פרויקט מצומצם רואה רק את הכלים שבהם הוא יכול להשתמש.
- כינויי דומיין: חברו כתובות לקבלה בלבד בדומיין משני לאותם חלקים מקומיים בדומיין ראשי, עם מצבי מסירה שמורים לעומת פעילים והסרה בטוחה. ראו כינויי דומיין באמצעות API ו-MCP.
- ארכיטקטורה של שני אסימונים: אסימוני ops נפרדים לתשתית ואסימוני message לפעולות דואר מלאות כגון קריאה, שליחה, יצירת טיוטות, תזמון, אנשי קשר, לוחות שנה, זהויות, תבניות ותיקיות.
- תובנות על עבירות משלוח והחזרות: משכו מלוח הבקרה את הסיכום של הודעות שנשלחו, נמסרו, חזרו בהחזרה קשיחה או רכה, יחד עם קודי SMTP ותגובות לכל נמען. ראו עבירות משלוח והחזרות.
- שימוש באחסון תיבת הדואר:
list_mailboxesו-get_mailboxמחזיריםused_mb,quota_mb,allocation_mbו-is_pooled, כדי שסוכן יוכל לזהות תיבות דואר שמתקרבות למגבלה בלי גישה ללוח הבקרה. - ניהול מותג לבן: בדקו את ההגדרה, נהלו מיתוג לכל דומיין, הזמינו לקוחות, שלטו בתפקידים ובדומיינים, השעו או שחזרו גישה ובדקו פעילות באמצעות API או MCP. ראו את מדריך המיתוג ואת מדריך ניהול הצוות.
Drive API ואוטומציית קבצים
Drive הוא חלק מממשק ה-API הציבורי. הוא כולל מרחבי Account Drive ו-Drive של תיבות דואר, שימוש, עיון בתיקיות, העלאות, ניהול קבצים ותיקיות, אשפה, פעולות בכמות גדולה, קישורי שיתוף ציבוריים, ניהול סיסמאות למכשירי סנכרון ומצב לקריאה בלבד של תוסף Drive Storage.
Drive משתמש באחד עשר היקפים של אסימון ops: drive:account:read, drive:account:write, drive:account:share, drive:account:purge, drive:mailbox:read, drive:mailbox:write, drive:mailbox:share, drive:mailbox:purge, drive:addon:read, drive:devices:read ו-drive:devices:write. פעולות חיוב עבור תוסף Drive, רכישה, שינוי נפח וביטול נשארות זמינות רק בלוח הבקרה ואינן נחשפות כפעולות כתיבה של API או MCP.
התחילו עם סקירת Drive API או עם המדריך המהיר ל-Drive API.
ארכיטקטורה של שני אסימונים
ה-API משתמש בשני סוגי אסימונים בלתי תלויים. תוכלו להשתמש באחד מהם או בשניהם לפי הצורך:
| סוג אסימון | קידומת | מה הוא מאפשר |
|---|---|---|
| אסימון Ops | tm_live_ |
כלי חשבון ותשתית: מותג לבן, דומיינים, DNS, תיבות דואר, הזמנות, Drive, העברות, SMTP, כרטיסי תמיכה, חיוב ו-Cloudflare |
| אסימון Message | tm_msg_ |
פעולות Webmail: הודעות, תיקיות, קבצים מצורפים, טיוטות, שליחה מתוזמנת, דיווח spam/ham, פעולות בכמות גדולה, אנשי קשר, קבוצות אנשי קשר, לוח שנה, עזרי כתיבה, זהויות, תבניות ושולחים חסומים |
לאסימוני ops ולאסימוני message יש היקפים נפרדים ומגבלות קצב נפרדות. סוכן יחיד יכול להשתמש בשני האסימונים בו זמנית באמצעות הגדרתם בסביבת שרת ה-MCP.
אסימוני Message זמינים בתוכניות Pro ו-Agency.
לפני שמתחילים
- לכל התוכניות יש גישה ל-API:
- Nano: Email Verifier. הוסיפו תוסף Drive Storage לקבלת גישה מלאה ל-Drive API ול-MCP.
- Starter: גישה מלאה ל-Drive ול-Email Verifier וגישה לקריאה בלבד בכל שאר אזורי התשתית. השתמשו בלוח הבקרה לפעולות הכתיבה באזורים אלה.
- Pro / Agency: גישה מלאה ל-API הבסיסי, כולל אסימוני message. היקפי מותג לבן נוספים כל עוד תקופת הניסיון או התוסף בתשלום פעילים.
- מחברים סוכן AI? הוסיפו את
https://trekmail.net/mcpכשרת MCP מרוחק בכל לקוח תואם. אם הוא תומך באימות דפדפן, אין צורך באסימון ידני. ראו חיבור סוכני AI (MCP) לאפשרויות מרוחקות, CLI/שולחן עבודה, גשר ואירוח עצמי. - כותבים שילוב משלכם? צרו אסימון
tm_live_תחת AI Agents & API → Tokens → Create token ושלחו אותו בתורAuthorization: Bearer …. ראו יצירה וניהול של אסימוני API. - חדשים ב-API? לחצו על Start tour בחלק העליון של דף AI Agents & API לסיור קצר בשיטות החיבור, ניהול אסימונים, יישומים מחוברים ויומן הביקורת.
כיצד האימות פועל
כל בקשה חייבת לכלול את האסימון בכותרת Authorization:
Authorization: Bearer tm_live_abc123...
אסימוני Ops מתחילים ב-tm_live_ ואסימוני message מתחילים ב-tm_msg_. שניהם מוצגים פעם אחת בעת היצירה ואי אפשר להציגם שוב.
אם האסימון חסר, בוטל או פג תוקף, ה-API מחזיר 401 עם קוד השגיאה unauthenticated.
כתובת URL בסיסית וניהול גרסאות
כל נקודות הקצה נמצאות תחת:
https://trekmail.net/api/v1
כתובת ה-URL הבסיסית מוצגת בלוח הבקרה AI Agents & API תחת Quick Reference. הגרסה נמצאת בנתיב ה-URL. אם אי פעם תוצג v2, v1 תמשיך לפעול.
תבנית תגובה
תגובות מוצלחות מחזירות JSON עם מפתח data עבור משאב יחיד או רשימה מחולקת לעמודים:
{
"data": [
{ "id": 1, "domain": "example.com", "status": "active" }
],
"links": { "next": "...", "prev": null },
"meta": { "current_page": 1, "last_page": 1, "total": 1 }
}
תגובות שגיאה משתמשות במבנה עקבי:
{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired API token",
"hint": "Check that your token is correct and has not been revoked.",
"request_id": "req_abc123",
"retryable": false
}
}
מזהי בקשות
כל תגובה כוללת כותרת X-Request-Id. תוכלו גם להעביר מזהה משלכם באמצעות X-Request-Id בבקשה. הוא יוחזר אליכם ויירשם ביומן הביקורת.
מגבלות קצב
לכל אסימון יש מגבלת קצב לדקה. כאשר מגיעים למגבלה, ה-API מחזיר 429 עם כותרת Retry-After שמציינת מתי אפשר לנסות שוב.
לפעולות הרסניות (כוונות מחיקה) יש מגבלה יומית נוספת לכל אסימון ותקופת המתנה בין מחיקות רצופות.
לפעולות כתיבה של העברה (התחלה, ביטול, ניסיון חוזר) יש מגבלת קצב ייעודית של 10 בקשות לדקה לכל אסימון, יחד עם תקרה כלל שרתית של פעולות מקבילות שמחזירה 503 כאשר יותר מדי העברות פועלות במערכת כולה.
אסימוני Message משתמשים במגבלות נפרדות. ערכי ברירת המחדל הם 30 בקשות קריאה לדקה לכל אסימון, 60 בקשות שליחה לדקה לכל אסימון, 5,000 קריאות מוצלחות ביום לכל אסימון ו-100 שליחות API ביום בתיבת דואר אחת. מונה בטיחות שליחה שני מוגדר כברירת מחדל ל-500 ביום לכל אסימון; התקרה הנמוכה יותר לתיבת הדואר חלה בדרך כלל ראשונה. אמצעי ההגנה האלה של ה-API אינם מחליפים את מגבלות ה-SMTP המנוהל של התוכנית או את המגבלות של ספק חיצוני.
אידמפוטנטיות
נקודות קצה שמשנות מצב ומסומנות כאידמפוטנטיות דורשות כותרת Idempotency-Key. הדרישה חלה על יצירות, עדכונים, שליחות ומחיקות שבהם ניסיון חוזר אוטומטי עלול ליצור עבודה כפולה. פעולות POST שדומות לקריאה, כגון זיהוי ספק או בדיקת חיבור, אינן דורשות אותה; בדקו את טבלת נקודות הקצה או את מפרט OpenAPI. אם תשלחו את אותו מפתח עם אותו גוף, ה-API ישחזר את התגובה המקורית בלי ליצור כפילויות.
Idempotency-Key: create-mailbox-alice-2024
אם תשלחו את אותו מפתח עם גוף שונה, ה-API יחזיר 409 Conflict.
הקצאת אחסון לתיבות דואר
כל נקודת קצה שיוצרת תיבת דואר או הזמנה, POST /api/v1/mailboxes, /api/v1/mailboxes:bulk, /api/v1/mailboxes/invites, /api/v1/mailboxes/invites:bulk, מקבלת מספר שלם אופציונלי storage_allocation_mb.
| ערך | משמעות |
|---|---|
לא צוין (או null) |
תיבת הדואר משתמשת במאגר החשבון המשותף (ברירת מחדל). |
| מספר שלם חיובי (MB) | תיבת הדואר היא ייעודית. הכמות המדויקת הזו מוקצית ממאגר החשבון לתיבת דואר זו בלבד. |
ההקצאות מאומתות מול המאגר הפעיל בניכוי תיבות דואר ייעודיות קיימות והזמנות ייעודיות שממתינות. נקודות קצה בכמות גדולה מאמתות גם את סכום ההקצאות בכל האצווה ודוחות את האצווה כולה עם 422 storage_pool_exceeded אם היא תגרום להקצאת יתר. המאגר מתרענן כאשר תיבת דואר ייעודית נמחקת, כאשר הזמנה ממומשת (ההקצאה עוברת לתיבת הדואר החדשה), וכאשר הזמנה ממתינה פגת תוקף.
בהזמנות, ההקצאה נרשמת בקוד הגישה ומועתקת לתיבת הדואר החדשה בעת המימוש. אם המאגר כבר אינו מספיק להקצאה המבוקשת בזמן המימוש (לדוגמה, מנהל אחר הגדיל בינתיים את ההקצאה הייעודית שלו), המימוש מוריד באופן בטוח את תיבת הדואר החדשה למאגר המשותף במקום להיכשל, והנמען רואה הודעה בדף ההצלחה.
גישת Drive לתיבות דואר
לכל תיבת דואר יש רמת drive_access שקובעת לאילו חלקים של Drive יכול המשתמש בה להגיע ב-Webmail. היא מוחזרת במשאב תיבת הדואר וניתן להגדיר אותה עם PATCH /api/v1/mailboxes/{id}, או עבור תיבות דואר רבות יחד, עם POST /api/v1/mailboxes:drive-access.
| ערך | משמעות |
|---|---|
full |
הכול: כרטיסיית Drive, העלאה ושיתוף, חיפוש קבצים וסנכרון למחשב. זוהי ברירת המחדל. |
attachments_only |
אין Drive ב-Webmail ואין סנכרון. השליחה עדיין פועלת, קובץ שחורג מסף הקבצים המצורפים נשלח כקישור להורדה, והעותק נמחק לאחר חלון השמירה. |
disabled |
אין Drive, ולא ניתן לצרף כלל קובץ שחורג מהסף. |
האחסון משותף לכל החשבון, ולכן זו הבקרה על כמות המאגר שאדם יחיד יכול למלא בקבצים.
השעיית כניסה לתיבת דואר
אפשר להשעות את הכניסה לתיבת דואר בזמן שהיא ממשיכה לקבל דואר: Webmail, IMAP, SMTP וסיסמאות מכשירים נדחים והפעלות פתוחות מסתיימות, אך המסירה אינה נפגעת, כך ששום דבר לא חוזר וכל ההודעות ממתינות כאשר הכניסה משוחזרת. הגדירו זאת עם POST /api/v1/mailboxes/{id}:suspend-login (ועם :resume-login), או עבור תיבות דואר רבות עם POST /api/v1/mailboxes:login-access.
משאב תיבת הדואר מדווח על כך בתור login_suspended, login_suspended_at ו-login_suspended_reason. קראו את login_suspended כדי לדעת אם האדם יכול להיכנס, ואת status כדי לדעת אם תיבת הדואר עצמה פועלת. תיבת דואר שהכניסה אליה מושעית נשארת active, משום שהיא עדיין מקבלת דואר. :pause הוא מצב אחר: הוא מגדיר את status ל-disabled וגם עוצר את המסירה.
ראו השעיית כניסה לתיבת דואר באמצעות API.
נקודת הקצה בכמות גדולה מקבלת בורר אחד בדיוק, mailbox_ids, domain_id או all, ומחזירה את הפעולה שביצעה:
{ "data": { "drive_access": "attachments_only", "matched": 24, "updated": 21, "skipped_shared": 3 } }
domain_id הוא הבורר המתאים כאשר דומיין מייצג לקוח אחד. תיבות דואר שכבר נמצאות ברמה המבוקשת נספרות ב-matched אך לא ב-updated, ולכן אפשר לחזור על הקריאה בבטחה.
תיבות דואר משותפות נדחות בנקודת הקצה היחידה עם 422 drive_access_not_applicable ומדולגות (ונספרות) בנקודת הקצה בכמות גדולה: אין להן משתמש Webmail משלהן, ולכן חברים פותחים אותן עם הרמה שלהם וערך שנשמר בשורה המשותפת לא ישנה דבר.
ההגבלה חלה על ה-API וגם על הממשק. מרחב ה-Drive של תיבת דואר מוגבלת אינו מופיע ב-GET /api/v1/drive/spaces, הקבצים שלה משיבים 404 לפי מזהה, ואי אפשר ליצור עבורה מכשיר סנכרון.
כתובות העברה
GET /api/v1/domains/{id}/forwarding-addresses מחזיר יותר מהרשימה, מפני ששני פרטים על כתובת העברה אינם נראים בכתובת עצמה:
{
"data": [ { "id": 8, "address": "sales@acme.com", "local_part": "sales",
"domain_id": 4, "recipients": ["team@example.net"], "is_active": true } ],
"limits": { "used": 1, "max": 100, "recipients_per_address": 15 },
"delivery": { "active": true, "requires_plan": "pro",
"paused_until": null, "paused_reason": null }
}
limits.maxהוא לכל דומיין ותלוי בתוכנית: 100 ב-Pro, 300 ב-Agency ו-25 כללים שמורים אך לא פעילים ב-Nano או Starter.delivery.activeמציין אם הכללים האלה מעבירים דואר ברגע זה. הואfalseבתוכנית שמתחת ל-requires_plan, ו-falseכל עודpaused_untilמוגדר (החשבון עבר את קצב השליחה השעתי שלו; ראו מגבלות שליחה לפי תוכנית). כלל יכול להיותis_active: trueועדיין לא למסור, לכן קראו אתdelivery, ולא רק אתis_active, לפני שתדווחו שההעברה פועלת.
יצירה בתוכנית שאינה יכולה למסור מותרת ומחזירה 201: הכלל נשמר ומתחיל לפעול לאחר שדרוג. הדבר תואם ללוח הבקרה, שמציג כללים כאלה כשמורים ולא פעילים.
דחיות חוזרות בתור 422 כאשר error.code מוגדר ל-validation_error או ל-limit_exceeded: כתובת שכבר נמצאת בשימוש בדומיין, נמען באותו דומיין (שייצור לולאה), דומיין נמען ללא MX תקין, או תקציב מלא לכל דומיין.
פעולות POST ו-DELETE בנקודות קצה אלה דורשות Idempotency-Key; PATCH אינה דורשת אותו.
היסטוריית מסירה
GET /api/v1/domains/{id}/forwarding-addresses/{addressId}/log מחזיר את מה שקרה בפועל לדואר אחרון, מהחדש לישן:
{
"data": [
{ "id": 91, "occurred_at": "2026-07-27T09:12:04+00:00", "outcome": "delivered",
"from": "rfq@northgatesupply.com", "to": "sales@example.net",
"smtp_code": "2.0.0", "smtp_response": "250 2.0.0 OK" }
],
"address": "sales@acme.com",
"window": { "retention_days": 30, "max_events": 200 }
}
outcome הוא אחד מתוך delivered, deferred (כשל זמני, עדיין מנסה שוב), failed (שרת הנמען דחה אותו) ו-blocked. האחרון מציין שמסנן ה-spam שלנו עצר את ההודעה לפני ההעברה, כך שהיא כלל לא הגיעה לנמען. טיפול ב-blocked כהחזרה יגרום למישהו לחפש בעיה בשרת המקבל אף שהיא התרחשה אצלנו.
limit (מ-1 עד 200, ברירת מחדל 100) הוא הפרמטר היחיד. החלון הוא תקופת השמירה של התוכנית, 30 יום ב-Agency ו-7 בשאר התוכניות, ואין נתונים ישנים יותר שאפשר לבקש משום שאירועי העברה נמחקים.
תיבות דואר משותפות (צוות)
תיבת דואר משותפת היא תיבת צוות כגון support@ או sales@, שחברים פותחים דרך חשבון תיבת הדואר הרגיל שלהם, ב-Webmail וכאשר גישה מקורית מופעלת גם כתיקיית IMAP מואצלת. אין סיסמה משותפת או כניסה נפרדת. הגישה אחידה: כל חבר יכול לקרוא, ודגל יחיד can_send קובע אם הוא יכול להשיב מהכתובת (true) או לקרוא בלבד (false). אין תפקידי חברים.
GET /api/v1/mailboxes ו-GET /api/v1/mailboxes/{id} מחזירים כעת mailbox_type ("user" או "shared") וערך בוליאני is_shared; תיבות דואר משותפות כוללות גם shared_member_count. השתמשו בשדות האלה כדי להבחין בין תיבת צוות לתיבה רגילה לפני קריאה לנקודות הקצה של חברים.
| נקודת קצה | שיטה | היקף נדרש | פעולה |
|---|---|---|---|
/api/v1/mailboxes/{id}/members |
GET | mailboxes:read |
הצגת חברים בתיבת דואר משותפת (לכל אחד: member_mailbox_id, email, can_read, can_send) |
/api/v1/mailboxes/{id}/members |
POST | mailboxes:write |
הוספת חבר, גוף {member_mailbox_id, can_send?} (ברירת המחדל של can_send היא true) |
/api/v1/mailboxes/{id}/members/{member} |
PATCH | mailboxes:write |
החלפת גישת התשובה של חבר, גוף {can_send} |
/api/v1/mailboxes/{id}/members/{member} |
DELETE | mailboxes:write |
הסרת חבר (בתיבת דואר משותפת תמיד נשאר לפחות אחד) |
/api/v1/shared-mailboxes |
POST | mailboxes:create |
יצירת תיבת דואר משותפת, גוף {domain_id, local_part, display_name, member_mailbox_ids[], storage_shared?, storage_mb?} |
/api/v1/mailboxes/{id}/convert-to-shared |
POST | mailboxes:write |
המרת תיבת דואר קיימת למשותפת, גוף {member_mailbox_ids[]} (מסובב את הסיסמה הישנה כך שלא תוכל עוד להיכנס; מחזיר 202 conversion_pending עם ניסיון חוזר אוטומטי אם סנכרון צד השרת טרם אושר) |
/api/v1/mailboxes/{id}/convert-to-regular |
POST | mailboxes:write |
המרת תיבת דואר משותפת בחזרה לרגילה, גוף {password} (מסיר חברים ומגדיר סיסמת כניסה חדשה) |
נקודות הקצה של חברים משתמשות מחדש בהיקפים הקיימים mailboxes:read / mailboxes:write. אין היקף נפרד לתיבת דואר משותפת.
כדי לגלות גישה מקורית מיישומי דואר, קראו ל-GET /api/v1/mailboxes/{member_mailbox_id}/client-setup עבור תיבת דואר רגילה של חבר. האובייקט shared_mailboxes שלה מדווח על מוכנות מקורית מתמשכת, מוכנות וסיבה בפועל של Send As, נתיבים מדויקים של Inbox/Sent/Archive/Junk ופעולות מותרות. can_send היא הרשאת Can reply שהוקצתה, ולא הוכחה לכך ש-SMTP מוכן כעת. נקודת הקצה לעולם אינה מחזירה סיסמה. קריאה עם מזהה תיבת הדואר המשותפת מחזירה 422 direct_login_unavailable, משום שהכתובת המשותפת אינה יכולה לבצע אימות ישיר.
הסרת חבר, שינוי can_send או המרת תיבת דואר משותפת לרגילה מסנכרנים הרשאות שרת דואר כאשר גישה מקורית מופעלת. תגובת 503 native_access_sync_failed ניתנת לניסיון חוזר ומבטיחה שהחברות, ההרשאה או סוג תיבת הדואר נשארו ללא שינוי במקום להחיל את הפעולה באופן חלקי.
נקודות קצה זמינות
ל-Drive יש תיעוד משלו והוא אינו חוזר כאן, ראו סקירת Drive API. נקודות הקצה של SMTP ברמת החשבון שנשמרו לתאימות לאחור מתוארות תחת ניתוב SMTP לכל דומיין במקום להופיע כנקודות קצה עדכניות.
| נקודת קצה | שיטה | היקף נדרש |
|---|---|---|
/api/v1/domains |
GET | domains:read |
/api/v1/domains/{id} |
GET | domains:read |
/api/v1/domains/{id}/matching-addresses |
GET | domains:read |
/api/v1/domains/{id}/matching-addresses |
PUT | domains:write |
/api/v1/domains/{id}/matching-addresses |
DELETE | domains:write |
/api/v1/domains/{id}/dns-requirements |
GET | domains:dns:read |
/api/v1/domains/{id}/dns-recheck |
POST | domains:dns:recheck |
/api/v1/domains/{id}/spam-metrics |
GET | domains:read |
/api/v1/domains/{id}/spam-metrics/summary |
GET | domains:read |
/api/v1/domains/{id}/deliverability |
GET | domains:read |
/api/v1/domains/{id}/bounces |
GET | domains:read |
/api/v1/domains/{id}/signature |
GET | domains:read |
/api/v1/domains/{id}/forwarding-addresses |
GET | domains:read |
/api/v1/domains/{id}/forwarding-addresses/{addressId}/log |
GET | domains:read |
/api/v1/dns-checks/{id} |
GET | domains:dns:read |
/api/v1/mailboxes |
GET | mailboxes:read |
/api/v1/mailboxes |
POST | mailboxes:create |
/api/v1/mailboxes/{id} |
PATCH | mailboxes:write |
/api/v1/mailboxes/invites |
POST | mailboxes:invites:create |
/api/v1/mailboxes/invites:bulk |
POST | mailboxes:invites:create |
/api/v1/mailboxes:bulk |
POST | mailboxes:create |
/api/v1/mailboxes/{id}/forwarding |
GET | mailboxes:forwarding:read |
/api/v1/mailboxes/{id}/forwarding |
PUT | mailboxes:forwarding:write |
/api/v1/mailboxes/{id}/rules |
GET | mailboxes:rules:read |
/api/v1/mailboxes/{id}/rules |
POST | mailboxes:rules:write |
/api/v1/mailboxes/{id}/rules/{ruleId} |
GET | mailboxes:rules:read |
/api/v1/mailboxes/{id}/rules/{ruleId} |
PUT | mailboxes:rules:write |
/api/v1/mailboxes/{id}/rules/{ruleId} |
DELETE | mailboxes:rules:write |
/api/v1/mailboxes/{id}/rules/reorder |
PATCH | mailboxes:rules:write |
/api/v1/mailboxes/{id}/auto-reply |
GET | mailboxes:auto-reply:read |
/api/v1/mailboxes/{id}/auto-reply |
PUT | mailboxes:auto-reply:write |
/api/v1/mailboxes/{id}/sieve |
GET | mailboxes:rules:read |
/api/v1/mailboxes/{id}/sieve |
PUT | mailboxes:rules:write |
/api/v1/mailboxes/{id}:delete-intent |
POST | mailboxes:delete |
/api/v1/delete-intents/{id}:confirm |
POST | mailboxes:delete |
/api/v1/me |
GET | (כל אסימון ops תקף) |
/api/v1/mailboxes/{id}/message-tokens |
POST | mailboxes:message-tokens:manage |
/api/v1/mailboxes/{id}/message-tokens |
GET | mailboxes:message-tokens:manage |
/api/v1/message-tokens/{id} |
DELETE | mailboxes:message-tokens:manage |
/api/v1/messages |
GET | messages:read (אסימון message) |
/api/v1/messages/{uid} |
GET | messages:read (אסימון message) |
/api/v1/messages/{uid} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/send |
POST | messages:send (אסימון message) |
/api/v1/messages/_ping |
GET | messages:read (אסימון message, אבחון) |
/api/v1/messages/{uid}/attachments/{index} |
GET | messages:read (אסימון message) |
/api/v1/messages/{uid}/attachments |
GET | messages:read (אסימון message) |
/api/v1/messages/{uid}/raw |
GET | messages:read (אסימון message; מחזיר raw_base64, encoding, content_type, size_bytes) |
/api/v1/messages/folders |
POST | messages:write (אסימון message) |
/api/v1/messages/folders/{path} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/folders/{path} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/{uid}:spam |
POST | messages:write (אסימון message) |
/api/v1/messages/{uid}:ham |
POST | messages:write (אסימון message) |
/api/v1/messages/bulk |
POST | messages:write (אסימון message) |
/api/v1/messages/folders:empty |
POST | messages:write (אסימון message) |
/api/v1/messages/drafts |
POST | messages:write (אסימון message); מחזיר uid + uidvalidity |
/api/v1/messages/drafts/{uid} |
PUT | messages:write (אסימון message); דורש את uidvalidity של הטיוטה |
/api/v1/messages/scheduled |
POST | messages:send (אסימון message) |
/api/v1/messages/scheduled |
GET | messages:read (אסימון message) |
/api/v1/messages/scheduled/{id} |
PATCH | messages:send (אסימון message) |
/api/v1/messages/scheduled/{id} |
DELETE | messages:send (אסימון message) |
/api/v1/messages/contacts |
GET | messages:read (אסימון message) |
/api/v1/messages/contacts |
POST | messages:write (אסימון message) |
/api/v1/messages/contacts/{id} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/contacts/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/contacts/import |
POST | messages:write (אסימון message) |
/api/v1/messages/contacts/export |
GET | messages:read (אסימון message) |
/api/v1/messages/contact-groups |
GET | messages:read (אסימון message) |
/api/v1/messages/contact-groups/{id}/members |
GET | messages:read (אסימון message) |
/api/v1/messages/external-accounts |
GET | messages:read (אסימון message) |
/api/v1/messages/external-accounts |
POST | messages:write (אסימון message) |
/api/v1/messages/external-accounts/{id} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/external-accounts/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/external-accounts/detect |
POST | messages:read (אסימון message) |
/api/v1/messages/external-accounts/test |
POST | messages:write (אסימון message) |
/api/v1/messages/external-accounts/{id}/test |
POST | messages:write (אסימון message) |
/api/v1/messages/_me |
GET | כל אסימון message (בדיקה עצמית) |
/api/v1/messages/calendar/events |
GET | messages:read (אסימון message) |
/api/v1/messages/calendar/events |
POST | messages:write (אסימון message) |
/api/v1/messages/calendar/events/{id} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/calendar/events/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/{uid}/reply |
GET | messages:read (אסימון message) |
/api/v1/messages/{uid}/reply-all |
GET | messages:read (אסימון message) |
/api/v1/messages/{uid}/forward |
GET | messages:read (אסימון message) |
/api/v1/messages/contact-groups |
POST | messages:write (אסימון message) |
/api/v1/messages/contact-groups/{id} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/contact-groups/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/contact-groups/{id}/members |
POST | messages:write (אסימון message) |
/api/v1/messages/contact-groups/{id}/members |
DELETE | messages:write (אסימון message) |
/api/v1/messages/identities |
GET | messages:read (אסימון message) |
/api/v1/messages/identities |
POST | messages:write (אסימון message) |
/api/v1/messages/identities/reply-policy |
PATCH | messages:write (אסימון message) |
/api/v1/messages/identities/{id} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/identities/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/templates |
GET | messages:read (אסימון message) |
/api/v1/messages/templates |
POST | messages:write (אסימון message) |
/api/v1/messages/templates/{id} |
PATCH | messages:write (אסימון message) |
/api/v1/messages/templates/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/blocked-senders |
GET | messages:read (אסימון message) |
/api/v1/messages/blocked-senders |
POST | messages:write (אסימון message) |
/api/v1/messages/blocked-senders/{id} |
DELETE | messages:write (אסימון message) |
/api/v1/mailboxes/{id}/enable-imap |
POST | mailboxes:write (אסימון ops) |
/api/v1/migrations/test-connection |
POST | migrations:write |
/api/v1/migrations |
GET | migrations:read |
/api/v1/migrations/{id} |
GET | migrations:read |
/api/v1/migrations |
POST | migrations:write |
/api/v1/migrations/{id}:cancel |
POST | migrations:write |
/api/v1/migrations/{id}:retry |
POST | migrations:write |
/api/v1/migrations/{id} |
DELETE | migrations:write |
/api/v1/migrations/bulk/preview |
POST | migrations:write |
/api/v1/migrations/bulk |
POST | migrations:write |
/api/v1/migrations/bulk |
GET | migrations:read |
/api/v1/migrations/bulk/{batch} |
GET | migrations:read |
/api/v1/migrations/bulk/{batch}:cancel |
POST | migrations:write |
/api/v1/migrations/bulk/{batch}:retry |
POST | migrations:write |
/api/v1/migrations/bulk/{batch}:resume |
POST | migrations:write |
/api/v1/migrations/bulk/{batch} |
DELETE | migrations:write |
/api/v1/migrations/bulk/{batch}/jobs/{job}/password |
PATCH | migrations:write |
/api/v1/account |
GET | account:read |
/api/v1/billing/status |
GET | billing:read |
/api/v1/billing/invoices |
GET | billing:read |
/api/v1/domains |
POST | domains:create |
/api/v1/domains/{id} |
DELETE | domains:delete |
/api/v1/domains/{id}/catch-all |
PATCH | domains:write |
/api/v1/domains/{id}/mail-hosting |
PATCH | domains:write |
/api/v1/domains/{id}/forwarding-addresses |
POST | domains:write |
/api/v1/domains/{id}/forwarding-addresses/{addressId} |
PATCH | domains:write |
/api/v1/domains/{id}/forwarding-addresses/{addressId} |
DELETE | domains:write |
/api/v1/domains/{id}/dkim:retry |
POST | domains:write |
/api/v1/domains/{id}/note |
PATCH | domains:write |
/api/v1/domains/{id}/signature |
PATCH | domains:write |
/api/v1/domains/{id}/branding |
GET | domains:read |
/api/v1/domains/{id}/branding |
PATCH | domains:write |
/api/v1/domains/{id}/branding/logo/{slot} |
PUT | domains:write |
/api/v1/domains/{id}/branding/logo/{slot} |
DELETE | domains:write |
/api/v1/domains/{id}/branding/verify-dns |
POST | domains:write |
/api/v1/domains/{id}/branding/preview |
POST | domains:write |
/api/v1/domains/{id}/branding |
DELETE | domains:write |
/api/v1/domains:bulk-add |
POST | domains:create |
/api/v1/mailboxes/{id} |
GET | mailboxes:read |
/api/v1/mailboxes/{id}/client-setup |
GET | mailboxes:read |
/api/v1/mailboxes/{id}/apple-mail-profile |
GET | mailboxes:read |
/api/v1/mailboxes/{id}/bounces |
GET | mailboxes:read |
/api/v1/mailboxes/{id}/password |
POST | mailboxes:write |
/api/v1/mailboxes/{id}/note |
PATCH | mailboxes:write |
/api/v1/mailboxes/{id}:pause |
POST | mailboxes:write |
/api/v1/mailboxes/{id}:restore |
POST | mailboxes:delete |
/api/v1/mailboxes/{id}:resume |
POST | mailboxes:write |
/api/v1/mailboxes/{id}:suspend-login |
POST | mailboxes:write |
/api/v1/mailboxes/{id}:resume-login |
POST | mailboxes:write |
/api/v1/mailboxes:login-access |
POST | mailboxes:write |
/api/v1/mailboxes:drive-access |
POST | mailboxes:write |
/api/v1/mailboxes/{id}/members |
GET | mailboxes:read |
/api/v1/mailboxes/{id}/members |
POST | mailboxes:write |
/api/v1/mailboxes/{id}/members/{member} |
PATCH | mailboxes:write |
/api/v1/mailboxes/{id}/members/{member} |
DELETE | mailboxes:write |
/api/v1/shared-mailboxes |
POST | mailboxes:create |
/api/v1/mailboxes/{id}/convert-to-shared |
POST | mailboxes:write |
/api/v1/mailboxes/{id}/convert-to-regular |
POST | mailboxes:write |
/api/v1/tickets |
GET | tickets:read |
/api/v1/tickets/{id} |
GET | tickets:read |
/api/v1/tickets/{id}/messages |
GET | tickets:read |
/api/v1/tickets |
POST | tickets:write |
/api/v1/tickets/{id}:mark-seen |
POST | tickets:write |
/api/v1/tickets/{id}/reply |
POST | tickets:write |
/api/v1/tickets/{id}:close |
POST | tickets:write |
/api/v1/domains/{id}/smtp |
GET | smtp:read |
/api/v1/domains/{id}/smtp |
PUT | smtp:write |
/api/v1/domains/{id}/smtp/profiles |
GET | smtp:read |
/api/v1/domains/{id}/smtp/profiles |
POST | smtp:write |
/api/v1/domains/{id}/smtp/profiles/{connectionId} |
PUT | smtp:write |
/api/v1/domains/{id}/smtp/profiles/{connectionId} |
DELETE | smtp:write |
/api/v1/domains/{id}/smtp:test |
POST | smtp:write |
/api/v1/domains/{id}/smtp:test-status/{jobId} |
GET | smtp:read |
/api/v1/smtp/default |
GET | smtp:read |
/api/v1/smtp/default |
PUT | smtp:write |
/api/v1/smtp (ישן, תאימות לאחור) |
GET | smtp:read |
/api/v1/smtp (ישן, תאימות לאחור) |
PUT | smtp:write |
/api/v1/smtp/{id} (ישן, תאימות לאחור) |
DELETE | smtp:write |
/api/v1/smtp:test (ישן, תאימות לאחור) |
POST | smtp:write |
/api/v1/smtp:test-status/{jobId} (ישן, תאימות לאחור) |
GET | smtp:read |
/api/v1/messages/{uid} |
DELETE | messages:write (אסימון message) |
/api/v1/messages/{uid}:move |
POST | messages:write (אסימון message) |
/api/v1/messages/folders |
GET | messages:read (אסימון message) |
/api/v1/mailboxes/{id}/aliases |
GET | mailboxes:read |
/api/v1/mailboxes/{id}/aliases |
POST | mailboxes:write |
/api/v1/mailboxes/{id}/aliases/{aliasId} |
PATCH | mailboxes:write |
/api/v1/mailboxes/{id}/aliases/{aliasId} |
DELETE | mailboxes:write |
/api/v1/verify |
POST | verify:write |
/api/v1/verify/bulk |
POST | verify:write |
/api/v1/verify/bulk/{jobId} |
GET | verify:read |
/api/v1/verify/bulk/{jobId}/download |
GET | verify:read |
/api/v1/verify/credits |
GET | verify:read |
/api/v1/verify/bulk |
GET | verify:read |
/api/v1/verify/bulk/{jobId}/cancel |
POST | verify:write |
/api/v1/verify/bulk/{jobId} |
DELETE | verify:write |
/api/v1/cloudflare/validate-token |
POST | cloudflare:read |
/api/v1/cloudflare/zones |
POST | cloudflare:read |
/api/v1/cloudflare/connect |
POST | cloudflare:write |
/api/v1/cloudflare/preview |
POST | cloudflare:read |
/api/v1/cloudflare/apply |
POST | cloudflare:write |
/api/v1/cloudflare/tokens |
GET | cloudflare:read |
/api/v1/cloudflare/tokens/{id} |
DELETE | cloudflare:delete |
נקודות הקצה של Cloudflare משתמשות באותו תהליך כמו לוח הבקרה: מאמתים אסימון, מציגים אזורים, מחברים דומיינים, מציגים תצוגה מקדימה של שינויי ה-DNS ואז מחילים אותם. גם /cloudflare/preview וגם /cloudflare/apply מקבלות שתי בקרות אופציונליות לכל דומיין:
included_records, רשימת היתרים של הרשומות שבהן מותר לגעת, לפי מזהה דומיין:{ "123": ["mx_primary", "spf_record"] }. רשומות שלא נכללות מדולגות, כך שאפשר להחיל רק MX ו-SPF ולחזור ל-DKIM מאוחר יותר. השמיטו את השדה כדי להחיל כל רשומה.confirmed_conflicts, כאשר התצוגה המקדימה מסמנת רשומה שכבר קיימת עם ערך אחר, ציינו כאן את מזהה הרשומה שלה (באותה תבנית{ domain_id: [record_ids] }) כדי לאשר את החלפתה.
מזהי הרשומות (mx_primary, spf_record, dkim_primary, dmarc_main, …) מגיעים ישירות מתגובת התצוגה המקדימה, ולכן סוכן טיפוסי קורא תחילה לתצוגה המקדימה ומעביר ל-apply את המזהים הרצויים:
POST /api/v1/cloudflare/apply
{
"domain_ids": [123],
"included_records": { "123": ["mx_primary", "spf_record"] },
"confirmed_conflicts": { "123": ["dmarc_main"] }
}
ניתוב SMTP לכל דומיין וברירת המחדל של החשבון
SMTP מוגדר לכל דומיין. כל דומיין בוחר אחד משלושה נתיבים: שליחה מנוהלת בפלטפורמה, פרופיל SMTP שמור (הספק שלכם, ניתן לשימוש חוזר בדומיינים), או "לא מוגדר". ברירת מחדל יחידה לכל החשבון קובעת באיזה נתיב יתחילו דומיינים חדשים.
נקודות קצה לכל דומיין (smtp:read / smtp:write):
| נקודת קצה | שיטה | פעולה |
|---|---|---|
/api/v1/domains/{id}/smtp |
GET | הנתיב הנוכחי: smtp_mode, effective_smtp_mode, profile, effective_profile |
/api/v1/domains/{id}/smtp |
PUT | הגדרת הנתיב, גוף {smtp_mode: platform|profile|not_configured|inherit, smtp_connection_id?, set_account_default?, apply_to_all?} |
/api/v1/domains/{id}/smtp/profiles |
GET | הצגת פרופילי SMTP השמורים בחשבון |
/api/v1/domains/{id}/smtp/profiles/{connectionId}/usage |
GET | הצגת הדומיינים וכתובות Send As המדויקים שמשתמשים בפרופיל (ללא פרטי אימות) |
/api/v1/domains/{id}/smtp/profiles |
POST | יצירת פרופיל ושימוש בו עבור דומיין זה |
/api/v1/domains/{id}/smtp/profiles/{connectionId} |
PUT | עדכון פרופיל (משפיע על כל דומיין שמשתמש בו) |
/api/v1/domains/{id}/smtp/profiles/{connectionId} |
DELETE | מחיקת פרופיל (דומיינים שמשתמשים בו מוקצים מחדש לברירת המחדל של החשבון) |
/api/v1/domains/{id}/smtp:test |
POST | בדיקת נתיב, מחזיר {job_id, poll_url} |
/api/v1/domains/{id}/smtp:test-status/{jobId} |
GET | תשאול משימת בדיקה |
כמה הערות על גוף הנתיב:
smtp_mode=platformבוחר שליחה מנוהלת;smtp_mode=profileדורשsmtp_connection_id; not_configuredמנקה את הנתיב.smtp_mode=inheritגורם לדומיין לעקוב בזמן אמת אחר ברירת המחדל של החשבון. בכל שינוי של ברירת המחדל, גם דומיין זה משתנה איתה. ממשק ה-Web תמיד כותב נתיבים מפורשים, אך צד השרת עדיין תומך ב-inherit, ולכןGETמחזיר אתeffective_smtp_modeשמראה למהinheritנפתר כעת.set_account_default: trueהוא המקביל ב-API למתג Make this the account default בלוח הבקרה (דומיינים חדשים מתחילים בנתיב הזה).apply_to_all: trueהוא כפתור Apply to all domains (החלפה חד פעמית של כל הדומיינים לנתיב הזה).
נקודות קצה לברירת המחדל של כל החשבון (smtp:read / smtp:write):
| נקודת קצה | שיטה | פעולה |
|---|---|---|
/api/v1/smtp/default |
GET | מחזירה default_smtp_mode (ערכו null עד שמגדירים אותו), effective_default_smtp_mode (בסיס התוכנית שמשמש כאשר אינו מוגדר), default_smtp_connection_id ו-profile |
/api/v1/smtp/default |
PUT | הגדרת ברירת המחדל, גוף {smtp_mode: platform|profile|not_configured, smtp_connection_id?, apply_to_all?} |
מחיקת פרופיל שהיה ברירת המחדל של החשבון מאפסת את ברירת המחדל לבסיס התוכנית.
נקודות קצה ישנות. פעולות GET/PUT /api/v1/smtp ברמת החשבון (וכן DELETE /api/v1/smtp/{id}, POST /api/v1/smtp:test, GET /api/v1/smtp:test-status/{jobId}) נשארות לתאימות לאחור אך אינן שולטות עוד בניתוב לכל דומיין: השתמשו בנקודות הקצה לכל דומיין ובנקודות הקצה של /smtp/default שלמעלה. כלי ה-MCP הישנים get_smtp_config / update_smtp_config הוצאו משימוש מאותה סיבה.
מיתוג מותג לבן, לקוחות וגישה לצוות
המיתוג מוגדר לכל דומיין באמצעות branding:read / branding:write. דומיין מפעיל מותג משלו (mode=custom), יורש את ברירת המחדל של החשבון (mode=inherit), או מושבת. נדרשת תקופת ניסיון פעילה של מותג לבן או תוסף בתשלום. לאחר ביטול, הבעלים שומר גישת שחזור לקריאה בלבד במהלך חלון החסד המוצג. קראו את dns_records של הדומיין ופרסמו בדיוק את הרשומות שהוחזרו. אל תסיקו שמות מארחים או יעדי CNAME מדוגמה.
| נקודת קצה | שיטה | פעולה |
|---|---|---|
/api/v1/domains/{id}/branding |
GET | קריאת מיתוג: mode, white_label_addon_active, brand, hosts, dns_records שיש ליצור, cname_target ו-mail_zone |
/api/v1/domains/{id}/branding |
PATCH | עדכון במיזוג חלקי: mode, name, primary_color/accent_color, dashboard_enabled/dashboard_label, webmail_enabled/webmail_label, mail_zone_enabled, support_email, support_url, sender_email, scope |
/api/v1/domains/{id}/branding/logo/{slot} |
PUT | העלאת לוגו base64 (slot = light|dark|favicon; PNG/JPG, ICO עבור favicon, עד ≤1 MB, ללא SVG). ברירת המחדל scope=domain דורשת מצב custom; הגדרה מפורשת של scope=account_default בדומיין inherit דורשת אסימון ללא הגבלה. |
/api/v1/domains/{id}/branding/logo/{slot} |
DELETE | הסרת משבצת לוגו. משתמשת באותם כללי היקף של דומיין וברירת מחדל לחשבון; DELETE מקבלת את scope כפרמטר שאילתה. |
/api/v1/domains/{id}/branding/verify-dns |
POST | הוספת אימות DNS לתור עבור המארחים הממותגים ואזור הדואר של המותג |
/api/v1/domains/{id}/branding/preview |
POST | יצירת כתובת URL קצרת מועד לתצוגה מקדימה (422 no_brand אם המיתוג לא הוגדר) |
/api/v1/domains/{id}/branding?scope=domain|all |
DELETE | ניקוי המיתוג עבור דומיין זה או עבור החשבון כולו |
PATCH הוא מיזוג חלקי, ולכן שדות שהושמטו נשמרים. אם המיתוג כרגע מושבת, העבירו mode כדי להפעילו שוב. sender_email מותאם אישית חייב להיות בדומיין עם מפתח DKIM מאומת. mail_zone_enabled משרת יישומי דואר וסנכרון DAV תחת הדומיין של המותג עצמו. הוא שייך למותג ולא לדומיין יחיד, ולכן דרוש mode=custom או scope=account_default; דומיין inherit מחזיר 422 inherited_brand. קראו את mail_zone.dns_status, mail_zone.client_hosts_status, mail_zone.records, mail_zone.dav_url ו-mail_zone.dav_ready כדי לעקוב אחר ההקצאה ולהשתמש רק בכתובת DAV מוכנה. לתהליך העבודה המלא של הסוכן, ראו מדריך API ו-MCP למיתוג מותג לבן.
ממשק המותג הלבן ברמת החשבון מוסיף 13 נתיבים תחת /api/v1/white-label: מצב והתקדמות הגדרה, קטלוג גישה פעיל, רשימת חברים ופעולות מחזור חיים, פעילות חשבון והיסטוריית פעולות וכניסות לכל חבר. הוא משתמש ב-members:read, members:write ו-activity:read. הגישה היא תמיד החיתוך בין זכאות החשבון, החברות הנוכחית של האדם, ההרשאה של פרטי האימות וכל מגבלת דומיין. ראו ניהול צוותי מותג לבן באמצעות API ו-MCP לטבלת הנתיבים ולמעברי המצבים.
מפרט OpenAPI זמין ב-/api/openapi.json לייבוא אל Postman, Insomnia או מחוללי קוד.
תיקונים מהירים
- 401 "unauthenticated": ודאו שהכותרת
Authorization: Bearer <token>קיימת ושהאסימון לא בוטל ולא פג תוקף. - 403 "plan_api_disabled": ההיקף המבוקש אינו כלול בתוכנית שלכם. Nano כוללת את Email Verifier (ואת Drive אם רכשתם את תוסף Drive Storage). שדרגו ל-Starter ומעלה עבור שאר ה-API.
- 403 "token_scope_blocked_by_plan": לאסימון יש היקפים שאינם זמינים בתוכנית הנוכחית. בטלו את האסימון וצרו אסימון חדש עם היקפים מותרים.
- 403 "scope_blocked_by_entitlement": הרשאת מותג לבן שמורה אינה זמינה משום שהתוסף אינו פעיל או משום שזו פעולת כתיבה בתקופת חסד. הפעילו מחדש את המותג הלבן ואז הנפיקו מחדש או אשרו שוב את פרטי האימות.
- 403 "scope_blocked_by_membership": תפקיד החבר הנוכחי מצומצם יותר מהפעולה המבוקשת. בקשו מהבעלים לשנות אותו; אישור מחדש לבדו אינו יכול להרחיב את החברות.
- 422 "missing_idempotency_key": הוסיפו כותרת
Idempotency-Keyלפעולת הכתיבה שמצוינת בתיעוד נקודת הקצה. - 403 "mailbox_sending_paused": השליחה מתיבת הדואר נעצרה משום שהדואר היוצא כבר לא נראה כאילו נשלח בידי בעליה, בדרך כלל מפני שסיסמה הגיעה לידיים הלא נכונות. קריאה, הצגת רשימות וכל שאר נקודות הקצה עדיין פועלות; רק השליחה נדחית, וניסיון חוזר לא יבטל את העצירה. יש לשנות את סיסמת תיבת הדואר, ולאחר מכן התמיכה מפעילה מחדש את השליחה. ראו למה איני יכול לשלוח דואר?.
- 429 הגבלת קצב: המתינו למשך הזמן שבכותרת
Retry-Afterלפני ניסיון חוזר.
שליחת דואר: גוף, כותרות ועבירות משלוח
POST /api/v1/messages/send מקבל בקשה בתבנית {to, subject, body: {text, html}, attachments, reply_to_message_id, headers}.
- גם
body.textוגםbody.htmlהם אופציונליים, אך לפחות אחד נדרש. אם תספקו רקbody.text, אנו יוצרים אוטומטית חלופת HTML באמצעות פסקאות<p>(שורות ריקות מפרידות בין פסקאות; מעבר שורה יחיד הופך ל-<br>) כדי שההודעה תוצג כדואר רגיל בכל לקוח מודרני. אם נדרש גופן ברוחב קבוע, שלחו את הערך המילולי<pre>...</pre>בתוךbody.html. headersהוא אובייקט אופציונלי של כותרות יוצאות שסיפק המשתמש. רשימת ההיתרים היאList-Unsubscribe, List-Unsubscribe-Post, Reply-Toוכל כותרת מעקב מותאמת אישיתX-*. שמות אחרים (From, Subject, Message-Id, Authentication-Resultsוכדומה) מנוהלים בידי הפלטפורמה ונדחים עם422. גם ערכים שמכילים CR/LF נדחים (הגנה מפני הזרקת כותרות). הערכים מוגבלים ל-998 תווים לפי RFC 2822.- למקרי שימוש בכמות גדולה או באוטומציה, ראו את הסעיף כותרות עבירות משלוח לשולחים בכמות גדולה להגדרת
List-Unsubscribeולמתגauto_list_unsubscribeברמת החשבון.
מאמרים קשורים
קפצו למדריכים הסמוכים שממשיכים את זרימת העבודה.