ממשק ה-API השלם הראשון לאימייל: כיצד דוא"ל עתידי חולל מהפכה בניהול האימייל

TL;DR: בנינו את ממשק ה-API REST השלם הראשון בעולם לניהול דוא"ל עם יכולות חיפוש מתקדמות שאף שירות אחר לא מציע. בעוד ש-Gmail, Outlook ו-Apple מאלצים מפתחים להיכנס לגיהנום IMAP או ממשקי API בעלי קצב חיפוש מוגבל, Forward Email מספק פעולות CRUD מהירות במיוחד עבור הודעות, תיקיות, אנשי קשר ויומנים באמצעות ממשק REST מאוחד עם יותר מ-15 פרמטרי חיפוש. זהו ממשק ה-API של דוא"ל שחיכו לו.

בעיית ה-API של הדוא"ל

ממשקי API של דוא"ל שבורים מיסודם. נקודה.

כל ספק דוא"ל גדול מאלץ מפתחים לבחור אחת משתי אפשרויות גרועות:

  1. גיהנום IMAP: התמודדות עם פרוטוקול בן 30 שנה שנועד ללקוחות שולחניים, לא ליישומים מודרניים
  2. ממשקי API משותקים: ממשקי API מורכבים, לקריאה בלבד, בעלי קצב מוגבל, שאינם יכולים לנהל את נתוני הדוא"ל שלך בפועל

התוצאה? מפתחים או נוטשים לחלוטין את שילוב הדוא"ל או מבזבזים שבועות בבניית מעטפות IMAP שבירות שמתקלקלות ללא הרף.

Warning

הסוד המלוכלך: רוב "ממשקי ה-API של דוא"ל" הם רק ממשקי API לשליחה. לא ניתן לארגן תיקיות, לסנכרן אנשי קשר או לנהל יומנים באופן תכנותי דרך ממשק REST פשוט. עד עכשיו.

מה באמת אומרים המפתחים

התסכול אמיתי ומתועד בכל מקום:

"לאחרונה ניסיתי לשלב את Gmail באפליקציה שלי, והשקעתי בזה יותר מדי זמן. החלטתי שלא כדאי לתמוך ב-Gmail."

- מפתח חדשות האקר, 147 הצבעות חיוביות

"האם כל ממשקי ה-API של הדוא"ל בינוניים? הם נראים מוגבלים או מגבילים בצורה כלשהי."

- דיון r/SaaS על Reddit

"למה פיתוח דוא"ל חייב להיות גרוע?"

- Reddit r/webdev, 89 תגובות של כאב מפתחים

"מה הופך את ממשק ה-API של Gmail ליעיל יותר מ-IMAP? סיבה נוספת לכך שממשק ה-API של Gmail יעיל הרבה יותר היא שהוא צריך להוריד כל הודעה פעם אחת בלבד. עם IMAP, כל הודעה חייבת להיות מורדת ומאונדקסת..."

- שאלת הצפת מחסנית עם 47 הצבעות חיוביות

הראיות נמצאות בכל מקום:

  • בעיות SMTP בוורדפרס: 631 בעיות ב-GitHub בנוגע לכשלים במסירת דוא"ל
  • מגבלות Zapier: תלונות הקהילה בנוגע למגבלות של 10 דוא"ל/שעה וכשלים בזיהוי IMAP
  • פרויקטים של IMAP API: מְרוּבֶּה קוד פתוח פרויקטים קיימים במיוחד כדי "להמיר IMAP ל-REST" מכיוון שאף ספק לא מציע זאת
  • תסכולים ב-Gmail API: ל-גלישת מחסנית יש 4,847 שאלות שתויגו "gmail-api" עם תלונות נפוצות בנוגע למגבלות קצב ומורכבות

הפתרון המהפכני להעברת דוא"ל

אנחנו שירות הדוא"ל הראשון שמציע פעולות CRUD מלאות עבור כל נתוני הדוא"ל דרך ממשק REST API מאוחד.

זה לא עוד סתם API של שליחה. זוהי שליטה תכנותית מלאה על:

  • הודעות: יצירה, קריאה, עדכון, מחיקה, חיפוש, העברה, סימון
  • תיקיות: ניהול מלא של תיקיות IMAP דרך נקודות קצה של REST
  • אנשי קשר: אחסון וסנכרון של אנשי קשר כרטיסDAV
  • יומנים: אירועי יומן ותזמון CalDAV

למה בנינו את זה

הבעיה: כל ספק דוא"ל מתייחס לדוא"ל כקופסה שחורה. אפשר לשלוח מיילים, אולי לקרוא אותם עם OAuth מורכב, אבל אי אפשר באמת לנהל את נתוני הדוא"ל שלך באופן תכנותי.

החזון שלנו: אימייל צריך להיות קל לשילוב כמו כל API מודרני. ללא ספריות IMAP. ללא מורכבות OAuth. ללא סיוטים של מגבלות קצב. רק נקודות קצה REST פשוטות שעובדות.

התוצאה: שירות הדוא"ל הראשון שבו ניתן לבנות לקוח דוא"ל שלם, שילוב CRM או מערכת אוטומציה באמצעות בקשות HTTP בלבד.

אימות פשוט

אין מורכבות OAuth. אין סיסמאות ספציפיות לאפליקציה. רק פרטי הכינוי שלך:

curl -u "alias@yourdomain.com:password" \
  https://api.forwardemail.net/v1/messages

20 נקודות קצה שמשנות הכל

הודעות (5 נקודות קצה)

  • GET /v1/messages - רשימת הודעות עם סינון (?folder=, ?is_unread=, ?is_flagged=)
  • POST /v1/messages - שליחת הודעות חדשות ישירות לתיקיות
  • GET /v1/messages/:id - אחזור הודעה ספציפית עם מטא-נתונים מלאים
  • PUT /v1/messages/:id - עדכון הודעה (דגלים, תיקייה, סטטוס קריאה)
  • DELETE /v1/messages/:id - מחיקת הודעה לצמיתות

תיקיות (5 נקודות קצה)

  • GET /v1/folders - רשימת כל התיקיות עם סטטוס המנוי
  • POST /v1/folders - יצירת תיקייה חדשה עם מאפיינים מותאמים אישית
  • GET /v1/folders/:id - קבלת פרטי תיקייה וספירת הודעות
  • PUT /v1/folders/:id - עדכון מאפייני תיקייה ומנוי
  • DELETE /v1/folders/:id - מחיקת תיקייה וטיפל בהעברת הודעות

אנשי קשר (5 נקודות קצה)

  • GET /v1/contacts - רשימת אנשי קשר עם חיפוש ועמודים
  • POST /v1/contacts - יצירת איש קשר חדש עם תמיכה מלאה ב-vCard
  • GET /v1/contacts/:id - אחזור איש קשר עם כל השדות והמטא-דאטה
  • PUT /v1/contacts/:id - עדכון פרטי איש קשר עם אימות ETag
  • DELETE /v1/contacts/:id - מחיקת איש קשר עם טיפול מדורג

לוחות שנה (5 נקודות קצה)

  • GET /v1/calendars - רשימת אירועי לוח שנה עם סינון תאריכים
  • POST /v1/calendars - יצירת אירוע לוח שנה עם משתתפים ואירוע חוזר
  • GET /v1/calendars/:id - קבלת פרטי אירוע עם טיפול באזור זמן
  • PUT /v1/calendars/:id - עדכון אירוע עם זיהוי התנגשויות
  • DELETE /v1/calendars/:id - מחיקת אירוע עם התראות משתתפים

חיפוש מתקדם: אין שירות אחר המשתווה

Forward Email הוא שירות הדוא"ל היחיד המציע חיפוש מקיף ותכנותי בכל שדות ההודעה באמצעות REST API.

בעוד שספקים אחרים מציעים סינון בסיסי במקרה הטוב, בנינו את ממשק ה-API לחיפוש דוא"ל המתקדם ביותר שנוצר אי פעם. אף ממשק API של Gmail, ממשק API של Outlook או כל שירות אחר לא מתקרב ליכולות החיפוש שלנו.

סביבת ה-API של החיפוש פגומה

מגבלות חיפוש ב-API של Gmail:

  • ✅ פרמטר בסיסי q בלבד
  • ❌ אין חיפוש ספציפי לשדה
  • ❌ אין סינון לפי טווח תאריכים
  • ❌ אין סינון לפי גודל
  • ❌ אין סינון לפי קבצים מצורפים
  • ❌ מוגבל לתחביר החיפוש של Gmail

מגבלות חיפוש ב-API של Outlook:

  • ✅ פרמטר בסיסי $search
  • ❌ אין מיקוד שדות מתקדם
  • ❌ אין צירופי שאילתות מורכבים
  • ❌ הגבלת קצב אגרסיבית
  • ❌ נדרש תחביר OData מורכב

אפל iCloud:

  • ❌ אין שום API
  • ❌ חיפוש IMAP בלבד (אם תצליחו לגרום לזה לעבוד)

ProtonMail ו-Tuta:

  • ❌ אין ממשקי API ציבוריים
  • ❌ אין יכולות חיפוש פרוגרמטיות

ממשק ה-API המהפכני לחיפוש העברת דוא"ל

אנו מציעים 15+ פרמטרים לחיפוש שאף שירות אחר לא מספק:

יכולת חיפוש העברת דוא"ל ממשק ה-API של ג'ימייל ממשק API של Outlook אחרים
חיפוש ספציפי לשדה ✅ נושא, גוף, מאת, אל, עותק, כותרות
חיפוש כללי מרובה שדות ?search= בכל השדות q= בסיסי $search= בסיסי
סינון טווח תאריכים ?since= & ?before=
סינון מבוסס גודל ?min_size= & ?max_size=
סינון קבצים מצורפים ?has_attachments=true/false
חיפוש כותרת ?headers=X-Priority
חיפוש מזהה הודעה ?message_id=abc123
מסננים משולבים ✅ פרמטרים מרובים עם לוגיקת AND
לא תלוי רישיות ✅ כל החיפושים
תמיכה בעמודים ✅ עובד עם כל פרמטרי החיפוש

דוגמאות לחיפוש מהעולם האמיתי

מצא את כל החשבוניות מהרבעון האחרון:

# Forward Email - Simple and powerful
GET /v1/messages?subject=invoice&since=2024-01-01T00:00:00Z&before=2024-04-01T00:00:00Z

# Gmail API - Impossible with their limited search
# No date range filtering available

# Outlook API - Complex OData syntax, limited functionality
GET /me/messages?$search="invoice"&$filter=receivedDateTime ge 2024-01-01T00:00:00Z

חיפוש קבצים מצורפים גדולים משולח ספציפי:

# Forward Email - Comprehensive filtering
GET /v1/messages?from=finance@company.com&has_attachments=true&min_size=1000000

# Gmail API - Cannot filter by size or attachments programmatically
# Outlook API - No size filtering available
# Others - No APIs available

חיפוש מורכב מרובה שדות:

# Forward Email - Advanced query capabilities
GET /v1/messages?body=quarterly&from=manager&is_flagged=true&folder=Reports

# Gmail API - Limited to basic text search only
GET /gmail/v1/users/me/messages?q=quarterly

# Outlook API - Basic search without field targeting
GET /me/messages?$search="quarterly"

יתרונות ביצועים

ביצועי חיפוש דוא"ל העברת דוא"ל:

  • זמני תגובה מתחת ל-100ms עבור חיפושים מורכבים
  • 🔍 אופטימיזציה של ביטויים רגולריים עם אינדוקס נכון
  • 📊 ביצוע שאילתה מקביל עבור ספירה ונתונים
  • 💾 ניצול יעיל של זיכרון עם שאילתות רזות

בעיות ביצועים של מתחרים:

  • 🐌 API של Gmail: קצב מוגבל ל-250 יחידות מכסה למשתמש לשנייה
  • 🐌 API של Outlook: ויסות אגרסיבי עם דרישות גיבוי מורכבות
  • 🐌 אחרים: אין ממשקי API להשוואה

תכונות חיפוש שאין לאף אחד אחר

# Find messages with specific headers
GET /v1/messages?headers=X-Priority:1
GET /v1/messages?headers=X-Spam-Score

2. מודיעין מבוסס גודל

# Find newsletter emails (typically large)
GET /v1/messages?min_size=50000&from=newsletter

# Find quick replies (typically small)
GET /v1/messages?max_size=1000&to=support

3. זרימות עבודה מבוססות קבצים מצורפים

# Find all documents sent to legal team
GET /v1/messages?to=legal&has_attachments=true&body=contract

# Find emails without attachments for cleanup
GET /v1/messages?has_attachments=false&before=2023-01-01T00:00:00Z

4. לוגיקה עסקית משולבת

# Find urgent flagged messages from VIPs with attachments
GET /v1/messages?is_flagged=true&from=ceo&has_attachments=true&subject=urgent

למה זה חשוב למפתחים

בניית יישומים שהיו בלתי אפשריים בעבר:

  1. ניתוח דוא"ל מתקדם: ניתוח דפוסי דוא"ל לפי גודל, שולח, תוכן
  2. ניהול דוא"ל חכם: ארגון אוטומטי על סמך קריטריונים מורכבים
  3. תאימות וגילוי: מציאת דוא"ל ספציפיים לדרישות משפטיות
  4. בינה עסקית: חילוץ תובנות מדפוסי תקשורת דוא"ל
  5. זרימות עבודה אוטומטיות: הפעלת פעולות על סמך מסנני דוא"ל מתוחכמים

היישום הטכני

ממשק ה-API לחיפוש שלנו משתמש ב:

  • אופטימיזציה של ביטויים רגולריים עם אסטרטגיות אינדוקס מתאימות
  • ביצוע מקביל לשיפור ביצועים
  • אימות קלט לאבטחה
  • טיפול מקיף בשגיאות לאמינות
// Example: Complex search implementation
const searchConditions = [];

if (ctx.query.subject) {
  searchConditions.push({
    subject: { $regex: ctx.query.subject, $options: 'i' }
  });
}

if (ctx.query.from) {
  searchConditions.push({
    $or: [
      { 'from.address': { $regex: ctx.query.from, $options: 'i' } },
      { 'from.name': { $regex: ctx.query.from, $options: 'i' } }
    ]
  });
}

// Combine with AND logic
if (searchConditions.length > 0) {
  query.$and = searchConditions;
}

Tip

יתרון למפתחים: בעזרת ממשק ה-API לחיפוש של Forward Email, תוכלו לבנות יישומי דוא"ל שיתחרו בפונקציונליות של לקוחות שולחן עבודה, תוך שמירה על הפשטות של ממשקי API של REST.

ארכיטקטורת ביצועים מהירה במיוחד

הערימה הטכנית שלנו בנויה למהירות ואמינות:

מדדי ביצועים

למה אנחנו מהירים כברק:

רְכִיב טֶכנוֹלוֹגִיָה תועלת ביצועים
אִחסוּן NVMe SSD מהיר פי 10 מ-SATA מסורתי
מסד נתונים SQLite + msgpackr אפס השהיית רשת, סידור אופטימלי
חוּמרָה AMD Ryzen מתכת חשופה אין תקורה של וירטואליזציה
אחסון במטמון בזיכרון + מתמיד זמני תגובה של פחות ממילישנייה
גיבויים Cloudflare R2 מוצפן אמינות ברמה ארגונית

מספרי ביצועים אמיתיים:

  • זמן תגובה של API: פחות מ-50ms בממוצע
  • אחזור הודעות: פחות מ-10ms עבור הודעות במטמון
  • פעולות תיקייה: פחות מ-5ms עבור פעולות מטא-נתונים
  • סנכרון אנשי קשר: יותר מ-1000 אנשי קשר/שנייה
  • זמן פעולה: הסכם רמת שירות של 99.99% עם תשתית יתירה

ארכיטקטורת פרטיות במקום הראשון

עיצוב ללא ידע: רק לך יש גישה באמצעות סיסמת ה-IMAP שלך - אנחנו לא יכולים לקרוא את האימיילים שלך. ארכיטקטורת אפס ידע שלנו מבטיח פרטיות מוחלטת תוך מתן ביצועים מעולים.

למה אנחנו שונים: ההשוואה המלאה

מגבלות ספק עיקריות

ספק בעיות ליבה מגבלות ספציפיות
ממשק ה-API של ג'ימייל קריאה בלבד, OAuth מורכב, ממשקי API נפרדים Cannot modify existing messages
Labels ≠ folders
1 billion quota units/day limit
Requires separate APIs עבור אנשי קשר/יומן
ממשק API של Outlook מיושן, מבלבל, ממוקד ארגונים REST endpoints deprecated March 2024
Multiple confusing APIs (EWS, גרף, REST)
Microsoft Graph complexity
Aggressive throttling
אפל iCloud אין API ציבורי No public API whatsoever
IMAP-only with 1000 emails/day limit
App-specific passwords required
500 recipients per message limit
פרוטון מייל אין API, טענות שקריות בקוד פתוח No public API available
Bridge software required עבור גישת IMAP
Claims "open source" אבל server code is proprietary
Limited to paid plans only
סַך הַכֹּל אין API, שקיפות מטעה No REST API for email management
Claims "open source" אבל backend is closed
IMAP/SMTP not supported
Proprietary encryption מונע אינטגרציות סטנדרטיות
אימייל של זאפייר מגבלות קצב חמורות 10 emails per hour limit
No IMAP folder access
Limited parsing capabilities

יתרונות ### להעברת דוא"ל

תכונה העברת דוא"ל תַחֲרוּת
גרועה לחלוטין ✅ יצירה מלאה, קריאה, עדכון ומחיקה של כל הנתונים ❌ פעולות לקריאה בלבד או מוגבלות
ממשק API מאוחד ✅ הודעות, תיקיות, אנשי קשר, יומנים בממשק API אחד ❌ ממשקי API נפרדים או תכונות חסרות
אישור פשוט ✅ אימות בסיסי עם אישורי כינוי ❌ OAuth מורכב עם מספר סקופים
אין הגבלות תעריף ✅ מגבלות נדיבות שנועדו ליישומים אמיתיים ❌ מכסות מגבילות שמפריעות לזרימות עבודה
אירוח עצמי Complete self-hosting option ❌ נעילת ספק בלבד
פְּרָטִיוּת ✅ אפס ידע, מוצפן, פרטי כריית נתונים וחששות בנוגע לפרטיות
ביצועים ✅ תגובות של פחות מ-50ms, אחסון NVMe ❌ השהיית רשת, עיכובים בוויסות

בעיית השקיפות בקוד פתוח

ProtonMail ו-Tuta משווקות את עצמן כ"קוד פתוח" ו"שקופות", אך זהו שיווק מטעה המפר עקרונות פרטיות מודרניים.

Warning

טענות שקיפות כוזבות: גם ProtonMail וגם Tuta מפרסמים באופן בולט את אישורי "קוד פתוח" שלהם תוך שמירה על קוד צד השרת הקריטי ביותר שלהם קנייני וסגור.

ההונאה של ProtonMail:

  • טענות: "אנחנו קוד פתוח" הוצגו באופן בולט בשיווק
  • מציאות: קוד השרת הוא קנייני לחלוטין - רק אפליקציות לקוח הן בקוד פתוח
  • השפעה: משתמשים אינם יכולים לאמת הצפנה בצד השרת, טיפול בנתונים או טענות פרטיות
  • הפרת שקיפות: אין דרך לבקר את מערכות עיבוד ואחסון הדוא"ל בפועל

השיווק המטעה של טוטה:

  • טענות: "דוא"ל בקוד פתוח" כנקודת מכירה מרכזית
  • מציאות: תשתית Backend היא קוד סגור - רק קצה קדמי זמין
  • השפעה: הצפנה קניינית מונעת פרוטוקולי דוא"ל סטנדרטיים (IMAP/SMTP)
  • אסטרטגיית נעילה: הצפנה מותאמת אישית כופה תלות בספק

מדוע זה חשוב לפרטיות מודרנית:

בשנת 2025, פרטיות אמיתית דורשת שקיפות מוחלטת. כאשר ספקי דוא"ל טוענים שהם "קוד פתוח" אך מסתירים את קוד השרת שלהם:

  1. הצפנה בלתי ניתנת לאימות: לא ניתן לבדוק כיצד הנתונים שלך מוצפנים בפועל
  2. שיטות עבודה נסתרות של נתונים: טיפול בנתונים בצד השרת נותר בגדר קופסה שחורה
  3. אבטחה מבוססת אמון: עליך לסמוך על הטענות שלהם ללא אימות
  4. נעילת ספק: מערכות קנייניות מונעות ניידות נתונים

שקיפות אמיתית של העברת דוא"ל:

  • קוד פתוח מלא - קוד שרת ולקוח
  • אירוח עצמי זמין - הפעלת מופע משלך
  • פרוטוקולים סטנדרטיים - תאימות IMAP, SMTP, CardDAV, CalDAV
  • אבטחה ניתנת לביקורת - כל שורת קוד ניתנת לבדיקה
  • אין נעילת ספק - הנתונים שלך, השליטה שלך

Tip

קוד פתוח אמיתי מאפשר לך לאמת כל טענה. בעזרת Forward Email, תוכל לבקר את ההצפנה שלנו, לסקור את הטיפול בנתונים שלנו ואפילו להפעיל מופע משלך. זוהי שקיפות אמיתית.

30+ דוגמאות לאינטגרציה מהעולם האמיתי

1. שיפור טופס יצירת קשר בוורדפרס

בעיה: כשלים בהגדרת SMTP של וורדפרס (631 בעיות ב-GitHub) פתרון: שילוב ישיר של API עוקף לחלוטין את SMTP

// WordPress contact form that saves to Sent folder
await fetch('https://api.forwardemail.net/v1/messages', {
  method: 'POST',
  headers: {
    'Authorization': 'Basic ' + btoa('contact@site.com:password'),
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    to: [{ address: 'owner@site.com' }],
    subject: 'Contact Form: ' + formData.subject,
    text: formData.message,
    folder: 'Sent'
  })
});

2. אלטרנטיבה לזאפייר לאוטומציה של דוא"ל

בעיה: מגבלת 10 מיילים לשעה של זאפייר ו- כשלים בזיהוי IMAP פתרון: אוטומציה בלתי מוגבלת עם שליטה מלאה בדוא"ל

// Auto-organize emails by sender domain
const messages = await fetch('/v1/messages?folder=INBOX');
for (const message of messages) {
  const domain = message.from.split('@')[1];
  await fetch(`/v1/messages/${message.id}`, {
    method: 'PUT',
    body: JSON.stringify({ folder: `Clients/${domain}` })
  });
}

3. סנכרון דוא"ל CRM

בעיה: ניהול אנשי קשר ידני בין דוא"ל ל-מערכות CRM פתרון: סנכרון דו-כיווני עם ממשק ה-API של אנשי קשר של כרטיסDAV

// Sync new email contacts to CRM
const newContacts = await fetch('/v1/contacts');
for (const contact of newContacts) {
  await crmAPI.createContact({
    name: contact.name,
    email: contact.email,
    source: 'email_api'
  });
}

4. עיבוד הזמנות מסחר אלקטרוני

בעיה: עיבוד ידני של דוא"ל הזמנות עבור פלטפורמות מסחר אלקטרוני פתרון: ניהול הזמנות אוטומטי

// Process order confirmation emails
const orders = await fetch('/v1/messages?folder=Orders');
const orderEmails = orders.filter(msg =>
  msg.subject.includes('Order Confirmation')
);

for (const order of orderEmails) {
  const orderData = parseOrderEmail(order.text);
  await updateInventory(orderData);
  await fetch(`/v1/messages/${order.id}`, {
    method: 'PUT',
    body: JSON.stringify({ folder: 'Orders/Processed' })
  });
}

5. שילוב כרטיסים עם תמיכה

בעיה: שרשורי דוא"ל מפוזרים ב-פלטפורמות תמיכה פתרון: מעקב מלא אחר שרשורי דוא"ל

// Create support ticket from email thread
const messages = await fetch('/v1/messages?folder=Support');
const supportEmails = messages.filter(msg =>
  msg.to.some(addr => addr.includes('support@'))
);

for (const email of supportEmails) {
  const ticket = await supportSystem.createTicket({
    subject: email.subject,
    from: email.from,
    body: email.text,
    timestamp: email.date
  });
}

6. מערכת ניהול ניוזלטרים

בעיה: אינטגרציות מוגבלות של פלטפורמת ניוזלטרים פתרון: ניהול מחזור חיים מלא של מנויים

// Auto-manage newsletter subscriptions
const messages = await fetch('/v1/messages?folder=Newsletter');
const unsubscribes = messages.filter(msg =>
  msg.subject.toLowerCase().includes('unsubscribe')
);

for (const msg of unsubscribes) {
  await removeSubscriber(msg.from);
  await fetch(`/v1/messages/${msg.id}`, {
    method: 'PUT',
    body: JSON.stringify({ folder: 'Newsletter/Unsubscribed' })
  });
}

7. ניהול משימות מבוסס דוא"ל

בעיה: עומס בתיבת הדואר הנכנס ו-מעקב אחר משימות פתרון: המרת הודעות דוא"ל למשימות ניתנות לפעולה

// Create tasks from flagged emails
const messages = await fetch('/v1/messages?is_flagged=true');
for (const email of messages) {
  await taskManager.createTask({
    title: email.subject,
    description: email.text,
    assignee: email.to[0].address,
    dueDate: extractDueDate(email.text)
  });
}

8. צבירת דוא"ל מרובת חשבונות

בעיה: ניהול חשבונות דוא"ל מרובים בין ספקים פתרון: ממשק מאוחד של תיבת הדואר הנכנס

// Aggregate emails from multiple accounts
const accounts = ['work@domain.com', 'personal@domain.com'];
const allMessages = [];

for (const account of accounts) {
  const messages = await fetch('/v1/messages', {
    headers: { 'Authorization': getAuth(account) }
  });
  allMessages.push(...messages.map(m => ({ ...m, account })));
}

9. לוח מחוונים לניתוח דוא"ל מתקדם

בעיה: אין תובנות לגבי דפוסי דוא"ל עם סינון מתוחכם פתרון: ניתוח דוא"ל מותאם אישית באמצעות יכולות חיפוש מתקדמות

// Generate comprehensive email analytics using advanced search
const analytics = {};

// Analyze email volume by sender domain
const messages = await fetch('/v1/messages');
analytics.senderDomains = analyzeSenderDomains(messages);

// Find large attachments consuming storage
const largeAttachments = await fetch('/v1/messages?has_attachments=true&min_size=1000000');
analytics.storageHogs = largeAttachments.map(msg => ({
  subject: msg.subject,
  from: msg.from,
  size: msg.size
}));

// Analyze communication patterns with VIPs
const vipEmails = await fetch('/v1/messages?from=ceo@company.com');
const urgentVipEmails = await fetch('/v1/messages?from=ceo@company.com&subject=urgent');
analytics.vipCommunication = {
  total: vipEmails.length,
  urgent: urgentVipEmails.length,
  urgencyRate: (urgentVipEmails.length / vipEmails.length) * 100
};

// Find unread emails by date range for follow-up
const lastWeek = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
const unreadRecent = await fetch(`/v1/messages?is_unread=true&since=${lastWeek}`);
analytics.followUpNeeded = unreadRecent.length;

// Analyze email sizes for optimization
const smallEmails = await fetch('/v1/messages?max_size=1000');
const mediumEmails = await fetch('/v1/messages?min_size=1000&max_size=50000');
const largeEmails = await fetch('/v1/messages?min_size=50000');
analytics.sizeDistribution = {
  small: smallEmails.length,
  medium: mediumEmails.length,
  large: largeEmails.length
};

// Search for compliance-related emails
const complianceEmails = await fetch('/v1/messages?body=confidential&has_attachments=true');
analytics.complianceReview = complianceEmails.length;

10. אחסון חכם של דוא"ל

בעיה: ארגון דוא"ל ידני פתרון: סיווג חכם של דוא"ל

// Auto-archive old emails by category
const messages = await fetch('/v1/messages');
const oldEmails = messages.filter(email =>
  isOlderThan(email.date, 90) // 90 days
);

for (const email of oldEmails) {
  const category = categorizeEmail(email);
  await fetch(`/v1/messages/${email.id}`, {
    method: 'PUT',
    body: JSON.stringify({ folder: `Archive/${category}` })
  });
}

11. שילוב דוא"ל ליומן

בעיה: יצירה ידנית של אירוע בלוח השנה מהודעות דוא"ל פתרון: חילוץ ויצירה אוטומטיים של אירועים

// Extract meeting details from emails
const messages = await fetch('/v1/messages?folder=Meetings');
const meetingEmails = messages.filter(email =>
  email.subject.toLowerCase().includes('meeting')
);

for (const email of meetingEmails) {
  const meetingData = extractMeetingInfo(email.text);
  if (meetingData.date && meetingData.time) {
    await fetch('/v1/calendars', {
      method: 'POST',
      body: JSON.stringify({
        title: email.subject,
        start: meetingData.datetime,
        attendees: [email.from, ...email.to]
      })
    });
  }
}

12. גיבוי ותאימות של דוא"ל

בעיה: שמירת דוא"ל ודרישות תאימות פתרון: גיבוי אוטומטי עם שימור מטא-נתונים

// Backup emails with full metadata
const allMessages = await fetch('/v1/messages');
const backup = {
  timestamp: new Date(),
  messages: allMessages.map(msg => ({
    id: msg.id,
    subject: msg.subject,
    from: msg.from,
    to: msg.to,
    date: msg.date,
    flags: msg.flags
  }))
};
await saveToComplianceStorage(backup);

13. ניהול תוכן מבוסס דוא"ל

בעיה: ניהול הגשות תוכן באמצעות דוא"ל עבור פלטפורמות CMS פתרון: דוא"ל כמערכת ניהול תוכן

// Process content submissions from email
const messages = await fetch('/v1/messages?folder=Submissions');
const submissions = messages.filter(msg =>
  msg.to.some(addr => addr.includes('submit@'))
);

for (const submission of submissions) {
  const content = parseSubmission(submission.text);
  await cms.createDraft({
    title: submission.subject,
    content: content.body,
    author: submission.from
  });
}

14. ניהול תבניות דוא"ל

בעיה: תבניות דוא"ל לא עקבי בצוות פתרון: מערכת תבניות מרכזית עם API

// Send templated emails with dynamic content
const template = await getEmailTemplate('welcome');
await fetch('/v1/messages', {
  method: 'POST',
  body: JSON.stringify({
    to: [{ address: newUser.email }],
    subject: template.subject.replace('{{name}}', newUser.name),
    html: template.html.replace('{{name}}', newUser.name),
    folder: 'Sent'
  })
});

15. אוטומציה של זרימת עבודה מבוססת דוא"ל

בעיה: תהליכי אישור ידני באמצעות דוא"ל פתרון: טריגרים אוטומטיים של זרימת עבודה

// Process approval emails
const messages = await fetch('/v1/messages?folder=Approvals');
const approvals = messages.filter(msg =>
  msg.subject.includes('APPROVAL')
);

for (const approval of approvals) {
  const decision = parseApprovalDecision(approval.text);
  await workflow.processApproval({
    requestId: extractRequestId(approval.subject),
    decision: decision,
    approver: approval.from
  });
}

16. ניטור אבטחת דוא"ל

בעיה: ידני גילוי איומי אבטחה פתרון: ניתוח איומים אוטומטי

// Monitor for suspicious emails
const recentEmails = await fetch('/v1/messages');
for (const email of recentEmails) {
  const threatScore = analyzeThreat(email);
  if (threatScore > 0.8) {
    await fetch(`/v1/messages/${email.id}`, {
      method: 'PUT',
      body: JSON.stringify({ folder: 'Security/Quarantine' })
    });
    await alertSecurityTeam(email);
  }
}

17. איסוף סקרים מבוסס דוא"ל

בעיה: עיבוד ידני של תשובת הסקר פתרון: צבירת תגובות אוטומטית

// Collect and process survey responses
const messages = await fetch('/v1/messages?folder=Surveys');
const responses = messages.filter(msg =>
  msg.subject.includes('Survey Response')
);

const surveyData = responses.map(email => ({
  respondent: email.from,
  responses: parseSurveyData(email.text),
  timestamp: email.date
}));
await updateSurveyResults(surveyData);

18. ניטור ביצועי דוא"ל

בעיה: אין נראות לתוך ביצועי מסירת דוא"ל פתרון: מדדי דוא"ל בזמן אמת

// Monitor email delivery performance
const sentEmails = await fetch('/v1/messages?folder=Sent');
const deliveryStats = {
  sent: sentEmails.length,
  bounces: await countBounces(),
  deliveryRate: calculateDeliveryRate()
};
await updateDashboard(deliveryStats);

19. הסמכת לידים מבוססת דוא"ל

בעיה: ניקוד לידים ידני מאינטראקציות בדוא"ל פתרון: צינור אוטומטי של סיווג לידים

// Score leads based on email engagement
const prospects = await fetch('/v1/contacts');
for (const prospect of prospects) {
  const messages = await fetch('/v1/messages');
  const emails = messages.filter(msg =>
    msg.from.includes(prospect.email)
  );
  const score = calculateEngagementScore(emails);
  await crm.updateLeadScore(prospect.id, score);
}

20. ניהול פרויקטים מבוסס דוא"ל

בעיה: עדכוני פרויקט מפוזר בשרשורי דוא"ל פתרון: מרכז תקשורת מרכזי של הפרויקט

// Extract project updates from emails
const messages = await fetch('/v1/messages?folder=Projects');
const projectEmails = messages.filter(msg =>
  msg.subject.includes('Project Update')
);

for (const email of projectEmails) {
  const update = parseProjectUpdate(email.text);
  await projectManager.addUpdate({
    project: update.projectId,
    author: email.from,
    content: update.content
  });
}

21. ניהול מלאי מבוסס דוא"ל

בעיה: עדכוני מלאי ידניים מהודעות דוא"ל של ספקים פתרון: מעקב מלאי אוטומטי מהודעות דוא"ל

// Process inventory updates from supplier emails
const messages = await fetch('/v1/messages?folder=Suppliers');
const inventoryEmails = messages.filter(msg =>
  msg.subject.includes('Inventory Update') || msg.subject.includes('Stock Alert')
);

for (const email of inventoryEmails) {
  const inventoryData = parseInventoryUpdate(email.text);
  await inventory.updateStock({
    sku: inventoryData.sku,
    quantity: inventoryData.quantity,
    supplier: email.from,
    timestamp: email.date
  });

  // Move to processed folder
  await fetch(`/v1/messages/${email.id}`, {
    method: 'PUT',
    body: JSON.stringify({ folder: 'Suppliers/Processed' })
  });
}

22. עיבוד חשבוניות מבוסס דוא"ל

בעיה: עיבוד חשבוניות ידני ואינטגרציה חשבונאית פתרון: חילוץ חשבוניות אוטומטי וסנכרון מערכת חשבונאות

// Extract invoice data from email attachments
const messages = await fetch('/v1/messages?folder=Invoices');
const invoiceEmails = messages.filter(msg =>
  msg.subject.toLowerCase().includes('invoice') && msg.attachments.length > 0
);

for (const email of invoiceEmails) {
  const invoiceData = await extractInvoiceData(email.attachments[0]);
  await accounting.createInvoice({
    vendor: email.from,
    amount: invoiceData.total,
    dueDate: invoiceData.dueDate,
    items: invoiceData.lineItems
  });

  // Flag as processed
  await fetch(`/v1/messages/${email.id}`, {
    method: 'PUT',
    body: JSON.stringify({ flags: ['\\Seen', '\\Flagged'] })
  });
}

23. רישום אירועים מבוסס דוא"ל

בעיה: עיבוד ידני של רישום לאירוע מתגובות דוא"ל פתרון: ניהול אוטומטי של משתתפים ושילוב לוח שנה

// Process event registration emails
const messages = await fetch('/v1/messages?folder=Events');
const registrations = messages.filter(msg =>
  msg.subject.includes('Registration') || msg.subject.includes('RSVP')
);

for (const registration of registrations) {
  const attendeeData = parseRegistration(registration.text);

  // Add to attendee list
  await events.addAttendee({
    event: attendeeData.eventId,
    name: attendeeData.name,
    email: registration.from,
    dietary: attendeeData.dietaryRestrictions
  });

  // Create calendar event for attendee
  await fetch('/v1/calendars', {
    method: 'POST',
    body: JSON.stringify({
      title: attendeeData.eventName,
      start: attendeeData.eventDate,
      attendees: [registration.from]
    })
  });
}

24. תהליך עבודה לאישור מסמכים מבוסס דוא"ל

בעיה: שרשראות מורכבות של אישור מסמך באמצעות דוא"ל פתרון: מעקב אוטומטי אחר אישורים וניהול גרסאות של מסמכים

// Track document approval workflow
const messages = await fetch('/v1/messages?folder=Approvals');
const approvalEmails = messages.filter(msg =>
  msg.subject.includes('Document Approval')
);

for (const email of approvalEmails) {
  const approval = parseApprovalEmail(email.text);

  await documentSystem.updateApproval({
    documentId: approval.documentId,
    approver: email.from,
    status: approval.decision, // 'approved', 'rejected', 'needs_changes'
    comments: approval.comments,
    timestamp: email.date
  });

  // Check if all approvals complete
  const document = await documentSystem.getDocument(approval.documentId);
  if (document.allApprovalsComplete) {
    await documentSystem.finalizeDocument(approval.documentId);
  }
}

25. ניתוח משוב לקוחות מבוסס דוא"ל

בעיה: איסוף ידני של משוב לקוחות וניתוח סנטימנטים פתרון: עיבוד אוטומטי של משוב ומעקב אחר סנטימנטים

// Analyze customer feedback from emails
const messages = await fetch('/v1/messages?folder=Feedback');
const feedbackEmails = messages.filter(msg =>
  msg.to.some(addr => addr.includes('feedback@'))
);

for (const email of feedbackEmails) {
  const sentiment = await analyzeSentiment(email.text);
  const category = categorizeFeeback(email.text);

  await feedback.recordFeedback({
    customer: email.from,
    content: email.text,
    sentiment: sentiment.score, // -1 to 1
    category: category, // 'bug', 'feature', 'complaint', 'praise'
    priority: calculatePriority(sentiment, category),
    timestamp: email.date
  });

  // Auto-escalate negative feedback
  if (sentiment.score < -0.5) {
    await escalateToSupport(email);
  }
}

26. צינור גיוס מבוסס דוא"ל

בעיה: גִיוּס ידני ומעקב אחר מועמדים פתרון: ניהול אוטומטי של מועמדים ותזמון ראיונות

// Process job application emails
const messages = await fetch('/v1/messages?folder=Careers');
const applications = messages.filter(msg =>
  msg.subject.toLowerCase().includes('application') && msg.attachments.length > 0
);

for (const application of applications) {
  const resume = await parseResume(application.attachments[0]);

  const candidate = await ats.createCandidate({
    name: resume.name,
    email: application.from,
    skills: resume.skills,
    experience: resume.experience,
    position: extractPosition(application.subject)
  });

  // Auto-schedule screening if qualified
  if (candidate.qualificationScore > 0.7) {
    await calendar.scheduleInterview({
      candidateId: candidate.id,
      type: 'phone_screening',
      duration: 30
    });
  }
}

27. עיבוד דוחות הוצאות מבוססי דוא"ל

בעיה: הגשה ואישור ידניים של דוח הוצאות פתרון: תהליך עבודה אוטומטי של חילוץ ואישור הוצאות

// Process expense report emails
const messages = await fetch('/v1/messages?folder=Expenses');
const expenseEmails = messages.filter(msg =>
  msg.subject.includes('Expense') && msg.attachments.length > 0
);

for (const email of expenseEmails) {
  const receipts = await processReceipts(email.attachments);

  const expenseReport = await expenses.createReport({
    employee: email.from,
    expenses: receipts.map(receipt => ({
      amount: receipt.total,
      category: receipt.category,
      date: receipt.date,
      merchant: receipt.merchant
    })),
    totalAmount: receipts.reduce((sum, r) => sum + r.total, 0)
  });

  // Auto-approve small amounts
  if (expenseReport.totalAmount < 100) {
    await expenses.approve(expenseReport.id);
  } else {
    await expenses.sendForApproval(expenseReport.id);
  }
}

28. דיווח אבטחת איכות מבוסס דוא"ל

בעיה: מעקב ידני אחר בעיות אבטחת איכות פתרון: ניהול אוטומטי של בעיות QA ומעקב אחר באגים

// Process QA bug reports from email
const messages = await fetch('/v1/messages?folder=QA');
const bugReports = messages.filter(msg =>
  msg.subject.includes('Bug Report') || msg.subject.includes('QA Issue')
);

for (const report of bugReports) {
  const bugData = parseBugReport(report.text);

  const ticket = await bugTracker.createIssue({
    title: report.subject,
    description: bugData.description,
    severity: bugData.severity,
    steps: bugData.stepsToReproduce,
    reporter: report.from,
    attachments: report.attachments
  });

  // Auto-assign based on component
  const assignee = await getComponentOwner(bugData.component);
  await bugTracker.assign(ticket.id, assignee);

  // Create calendar reminder for follow-up
  await fetch('/v1/calendars', {
    method: 'POST',
    body: JSON.stringify({
      title: `Follow up on ${ticket.id}`,
      start: addDays(new Date(), 3),
      attendees: [assignee]
    })
  });
}

29. ניהול ספקים מבוסס דוא"ל

בעיה: תקשורת עם ספקים ידני ומעקב אחר חוזים פתרון: ניהול קשרי ספקים אוטומטי

// Track vendor communications and contracts
const messages = await fetch('/v1/messages?folder=Vendors');
const vendorEmails = messages.filter(msg =>
  isVendorEmail(msg.from)
);

for (const email of vendorEmails) {
  const vendor = await vendors.getByEmail(email.from);

  // Log communication
  await vendors.logCommunication({
    vendorId: vendor.id,
    type: 'email',
    subject: email.subject,
    content: email.text,
    timestamp: email.date
  });

  // Check for contract-related keywords
  if (email.text.includes('contract') || email.text.includes('renewal')) {
    await vendors.flagForContractReview({
      vendorId: vendor.id,
      emailId: email.id,
      priority: 'high'
    });

    // Create task for procurement team
    await tasks.create({
      title: `Review contract communication from ${vendor.name}`,
      assignee: 'procurement@company.com',
      dueDate: addDays(new Date(), 2)
    });
  }
}

30. ניטור מדיה חברתית מבוסס דוא"ל

בעיה: מעקב ידני אחר אזכורים ותגובה ל-מדיה חברתית פתרון: עיבוד אוטומטי של התראות ותיאום תגובה לרשתות חברתיות

// Process social media alerts from email notifications
const messages = await fetch('/v1/messages?folder=Social');
const socialAlerts = messages.filter(msg =>
  msg.from.includes('alerts@') || msg.subject.includes('Social Mention')
);

for (const alert of socialAlerts) {
  const mention = parseSocialMention(alert.text);

  await socialMedia.recordMention({
    platform: mention.platform,
    author: mention.author,
    content: mention.content,
    sentiment: mention.sentiment,
    reach: mention.followerCount,
    url: mention.url
  });

  // Auto-escalate negative mentions with high reach
  if (mention.sentiment < -0.5 && mention.followerCount > 10000) {
    await socialMedia.escalateToTeam({
      mentionId: mention.id,
      priority: 'urgent',
      assignee: 'social-media-manager@company.com'
    });

    // Create calendar reminder for immediate response
    await fetch('/v1/calendars', {
      method: 'POST',
      body: JSON.stringify({
        title: `Urgent: Respond to negative social mention`,
        start: addMinutes(new Date(), 30),
        attendees: ['social-media-manager@company.com']
      })
    });
  }
}

תחילת העבודה

1. צור את חשבון הדוא"ל שלך להעברת דוא"ל

הירשם ב-forwardemail.net ואמת את הדומיין שלך.

2. צור אישורי API

כתובת הדוא"ל והסיסמה שלך משמשים כפרטי API - אין צורך בהגדרה נוספת.

3. בצע את קריאת ה-API הראשונה שלך

# List your messages
curl -u "your-alias@domain.com:password" \
  https://api.forwardemail.net/v1/messages

# Create a new contact
curl -u "your-alias@domain.com:password" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"fullName":"John Doe","emails":[{"value":"john@example.com"}]}' \
  https://api.forwardemail.net/v1/contacts

4. עיין בתיעוד

בקר באתר forwardemail.net/en/email-api לקבלת תיעוד API מלא עם דוגמאות אינטראקטיביות.

משאבים טכניים


מוכנים לחולל מהפכה באינטגרציית הדוא"ל שלכם? התחילו לבנות עם ה-API של Forward Email עוד היום וחוו את פלטפורמת ניהול הדוא"ל המלאה הראשונה שנועדה למפתחים.

העברת דוא"ל: שירות הדוא"ל שסוף סוף מצליח לנתח את ממשקי ה-API.