# הטופס מציג הצלחה, אבל המייל לא מגיע: כך מאתרים את התקלה

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

Author: Formgong
Published: 2026-10-01
Language: he
Canonical: https://formgong.com/blog/contact-form-not-sending-email?lang=he

בדקו בנפרד את בקשת האתר, הרישום ב-Formgong וערוץ המייל עם נמען מאומת. success: true מאשר קבלה, לא הגעת מייל. גם ספאם, אימות החשבון ו-Turnstile משפיעים על התראות.

## שלוש תוצאות שונות

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

## חפשו את הבקשה ב-Network

פתחו כלי דפדפן וחפשו POST אל `https://formgong.com/submit`. בדקו מפתח, שדות ותשובה. אין בקשה? בדקו כפתור וטיפול בשליחה. ב-HTML חשובים `action` ו-`method`; ב-JavaScript כתובת `fetch`.

## קראו את התשובה לפני הצגת הצלחה

בקשו JSON עם `Accept: application/json` ובדקו HTTP וגם `success`. fetch שהסתיים עשוי לקבל תשובת שגיאה. טופס HTML רגיל מקבל הפניה. הפעילו את הדוגמה בתוך `try/catch` ושמרו את השדות בכישלון.

```javascript
// Call from your form's submit handler inside try/catch.
// Keep the entered fields when the request fails.
async function sendContactForm(form) {
  const response = await fetch("https://formgong.com/submit", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Accept: "application/json",
    },
    body: JSON.stringify({
      ...Object.fromEntries(new FormData(form)),
      access_key: "fk_your_access_key",
    }),
  });
  const result = await response.json();
  if (!response.ok || result.success !== true) {
    throw new Error(result.message || "Submission failed");
  }
  // Accepted by Formgong; this is not email-delivery confirmation.
  return result.id;
}
```

## בחרו את הבדיקה לפי הקוד

`unknown_access_key` מצביע על המפתח; `origin_not_allowed` על הדומיין. `turnstile_missing` ו-`turnstile_failed` דורשים בדיקת טוקן. `rate_limited` ו-`limit_exceeded` הם מגבלות שונות, שלא נפתרות בלחיצות מהירות.

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

## בדקו גם את הספאם

פתחו את הטופס שתואם למפתח באתר. `botcheck` מלא יכול לקבל תשובה שנראית תקינה, אבל ליצור ספאם בלי התראות. אם הערכת AI מחזיקה ספאם, בדקו גם את הסיווג הזה.

## הרישום קיים? עברו למייל

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

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

## אחרי שינוי הגנה

עדכנו את הקוד עם site key ו-`cf-turnstile-response`. לטוקנים יש תוקף ושימוש יחיד; ייתכן שצריך לאפס את הרכיב לפני ניסיון נוסף. secret key לא נכנס לדפדפן. בדקו בדומיין שפורסם.

## שמרו מידע שאפשר לחקור

רשמו כתובת, זמן, סטטוס HTTP, קוד ומזהה פנייה אם קיים. אל תפרסמו נתוני לקוחות או סודות. אחרי תיקון בדקו מחדש את כל המסלול.

לנקודת התחלה פשוטה יש [דוגמת HTML](/blog/html-contact-form-without-backend?lang=he), ולערוץ נוסף [מדריך טלגרם](/blog/website-form-to-telegram?lang=he).

## שאלות נפוצות

### success: true מאשר שהמייל הגיע?

לא. הבקשה התקבלה; מסירת ההתראה מתבצעת בנפרד.

### למה טלגרם מגיע והמייל לא?

אלה ערוצים עצמאיים. בדקו התראות מייל, נמענים מאומתים ודואר זבל.

### למה botcheck לא מציג שגיאה?

זו מלכודת לבוטים: השליחה עשויה להיראות מוצלחת ולהישמר כספאם בלי התראה.

### איך מנסים שוב עם Turnstile?

מקבלים טוקן חדש ובודקים שהוא נשלח ב-cf-turnstile-response. לא משתמשים שוב בטוקן שכבר נוצל.

## מקורות ותיעוד

- [MDN: Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch)
- [Cloudflare: Turnstile token validation](https://developers.cloudflare.com/turnstile/get-started/server-side-validation/)
- [התיעוד של Formgong](https://formgong.com/docs?lang=he)

[קבלת מפתח לטופס](https://formgong.com/?lang=he#top)
