מה עושים בשיעור הזה

בשיעור הקודם השתמשנו ב-API של Open-Meteo רק כדי לקבל מידע. בלי הרשמה, בלי סיסמה, בלי כלום. היום עושים שני צעדים גדולים בבת אחת:

  1. מקבלת מידע לביצוע פעולה. השרת שלנו יבקש משירות חיצוני לעשות משהו בעולם האמיתי: לשלוח מיילים.
  2. API שדורש הזדהות. הפעם צריך לפתוח חשבון ולקבל מפתח (API Key, או API Token), שאומר לשירות החיצוני מי אנחנו.

זוכרים שבשיעור 4 לא היה לנו שירות מיילים, ולכן בנינו Admin Mode? היום סוגרים את הפינה הזו.

נרשמים ל-Resend ומקבלים API Key

השירות שנשתמש בו נקרא Resend (resend.com). נרשמים, ומיד המסך הראשון מבקש ליצור API Key.

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

  • שימו לב שהמפתח מוצג מוסתר על המסך. זה בכוונה, כדי שלא ייחשף בטעות (נגיד, כשמישהו מסתכל לכם מעבר לכתף, או באמצע הקלטת מסך). שמרו עליו בסוד.
  • כדי להעתיק אותו לוחצים על Copy. אין צורך להציג אותו בכלל.

איפה שומרים את המפתח? לא בפרומפט

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

לא. אסור לשים סיסמאות ומפתחות בתוך פרומפט ל-AI. מה שמודבק בצ’אט נשמר בהיסטוריה, ומשם הדרך לדליפה קצרה.

הפתרון:

  • Secrets ב-Cloudflare. ל-Cloudflare יש מנגנון לשמירת סודות בשרת. כבר השתמשנו בו, כשהגדרנו את סיסמת המנהל בשיעור 4.
  • המפתח עוקף את Claude. אנחנו שולחים את המפתח מהמחשב שלנו, דרך הטרמינל, ישירות לאחסון הסודי של Cloudflare. Claude Code לא רואה אותו, והוא לא נשמר באף פרומפט.

הפרומפט, ואחריו הסוד בטרמינל

ב-Claude Code מבקשים: להשתמש ב-API של Resend לשליחת מיילים, לשמור את המפתח כ-Secret בשרת, ולשלב את השליחה בשני מקומות באפליקציה:

  • מייל הזמנה (או קבלת פנים) כשנפתח משתמש חדש.
  • קישור לאיפוס סיסמה, בתהליך “שכחתי סיסמה” (Forgot Password).

קלוד יכתוב את הקוד ויעשה Deploy, אבל יזהיר שהשליחה לא תעבוד עד שהסוד יוגדר בשרת. וזה החלק שלכם:

  1. חוזרים ל-Resend ומעתיקים את ה-API Key (שוב, בלי להציג אותו).
  2. ב-Claude Code לוחצים על כפתור ה-Play בחלון הטרמינל, כדי להריץ את הפקודה ליצירת הסוד (wrangler secret put).
  3. מדביקים את המפתח בטרמינל ולוחצים Enter. זהו, המפתח שמור בשרת.

בדיקה ראשונה, ומגבלה שכדאי להכיר

עכשיו לבדיקה באתר החי. מתנתקים (Sign Out), ומתחת לטופס ההתחברות מופיע קישור חדש: Forgot your password. מזינים את המייל שאיתו נרשמתם ל-Resend ושולחים.

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

אבל יש מגבלה חשובה. בהתחלה, Resend מאפשרת לשלוח מיילים רק לכתובת שאיתה נרשמתם. כדי לשלוח לכל משתמש או לקוח אחר, צריך לאמת שהדומיין שלכם (Domain Verification).

אימות הדומיין ב-Resend

כל שירות רציני לשליחת מיילים דורש אימות דומיין. ככה מונעים ספאם והתחזות (Spam & Phishing). אם כל אחד היה יכול לשלוח מיילים “בשם” כל דומיין, הייתם מקבלים מיילים מהבנק שהבנק לא שלח.

השלבים:

  1. ב-Resend עוברים לטאב Domains ולוחצים Add domain.
  2. מזינים רק את שם הדומיין, למשל graphs.wins. בלי https:// ובלי שום נתיב.
  3. Resend מבקשת להוסיף כמה רשומות DNS. מכיוון שהדומיין מנוהל ב-Cloudflare, יש כפתור נוח: Configure via Cloudflare.
  4. לוחצים, נפתח חלון אישור של Cloudflare, ולוחצים Authorize. הרשומות נוספות לבד.
  5. מחכים 5 עד 10 דקות (ב-Cloudflare זה מתעדכן מהר), מרעננים את Resend, ומקבלים Verified ירוק.

כתובת שולח משלכם, ובדיקה אחרונה

אם הסתכלתם על המייל הראשון, ראיתם שהוא נשלח מכתובת ברירת המחדל של Resend: [email protected]. לא נורא לבדיקה, פחות מתאים ללקוחות.

עכשיו כשהדומיין מאומת, חוזרים ל-Claude Code:

“I verified my domain graphs.wins in Resend. Please update the code so all emails are sent from [email protected], and deploy to Cloudflare”

קלוד מעדכן את כתובת השולח ועושה Deploy. בדיקה אחרונה: מבקשים שוב איפוס סיסמה, ובתיבת הדואר מחכה מייל מ-[email protected]. ממותג, מקצועי, ונראה הרבה יותר אמין.

סדנה חדשה · בזום · 9.11 ו-12.11 יש לכם קובץ אקסל שעובד? הפכו אותו לאתר חי, עם Claude Code שני מפגשים של שעתיים, בלי ניסיון בתכנות. יוצאים עם אתר אמיתי בכתובת משלכם. לפרטים והרשמה ←