יוצר: @skills-il
בניית קמפיינים תקניים לדוא"ל בשוק הישראלי עם תבניות RTL בעברית, אימות חוק הספאם ואופטימיזציית שליחה
npx skills-il add skills-il/communication --skill israeli-email-complianceתיקון 40 לחוק התקשורת (בזק ושידורים), התשמ"ב-1982, הוא חוק הספאם הישראלי. הבדלים עיקריים מחוק CAN-SPAM האמריקאי:
| דרישה | ישראל (חוק הספאם) | ארה"ב (CAN-SPAM) |
|---|---|---|
| מודל הסכמה | הסכמה מוקדמת מפורשת נדרשת לפני השליחה | מודל הסרה (שלח עד לבקשת הסרה) |
| פורמט הסכמה | בכתב, מוקלט, או דיגיטלי עם חותמת זמן | ללא פורמט מוגדר |
| מועד הסרה | מיידי (עד 2 ימי עסקים) | 10 ימי עסקים |
| קנסות | עד 1,000 ש"ח לכל הודעה ללא הסכמה (אזרחי), קנסות פליליים | עד $46,517 לכל דוא"ל |
| תביעות פרטיות | הנמען יכול לתבוע 1,000 ש"ח לכל הודעה ללא הוכחת נזק | חובה להוכיח נזק |
חריגים בהם לא נדרשת הסכמה מוקדמת:
from datetime import datetime, timezone
from dataclasses import dataclass, field
@dataclass
class ConsentRecord:
"""Track opt-in consent per Israeli anti-spam law requirements."""
email: str
consented_at: str # ISO 8601 timestamp
consent_method: str # "web_form", "written", "verbal_recorded"
consent_source: str # URL or description of where consent was given
ip_address: str = ""
channels: list = field(default_factory=lambda: ["email"])
is_active: bool = True
revoked_at: str = ""
def to_record(self) -> dict:
return {
"email": self.email,
"consented_at": self.consented_at,
"method": self.consent_method,
"source": self.consent_source,
"ip": self.ip_address,
"channels": self.channels,
"active": self.is_active,
"revoked_at": self.revoked_at
}
def validate_consent(record: ConsentRecord) -> list:
"""Validate consent record meets Israeli legal requirements."""
issues = []
if not record.consented_at:
issues.append("Missing consent timestamp (required by law)")
if record.consent_method not in ("web_form", "written", "verbal_recorded"):
issues.append("Consent method must be verifiable")
if not record.consent_source:
issues.append("Must record where consent was obtained")
return issuesניהול הסכמות רב-ערוצי (דוא"ל + SMS): כאשר משתמש נותן הסכמה לדוא"ל, זה לא מכסה אוטומטית SMS או WhatsApp. כל ערוץ דורש הסכמה מפורשת נפרדת לפי חוק הספאם.
דוא"ל בעברית דורש סימון RTL (ימין לשמאל) תקין. ללא זה, ספקי דוא"ל עלולים לסמן את ההודעה כספאם או להציגה בצורה שגויה.
<!DOCTYPE html>
<html lang="he" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
direction: rtl;
text-align: right;
font-family: Arial, Helvetica, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f4;
}
.container {
max-width: 600px;
margin: 0 auto;
background-color: #ffffff;
padding: 20px;
}
.header { text-align: center; padding: 20px 0; }
.content { padding: 20px; line-height: 1.8; }
.unsubscribe {
text-align: center;
padding: 20px;
font-size: 12px;
color: #666666;
border-top: 1px solid #eeeeee;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>COMPANY_NAME</h1>
</div>
<div class="content">
<p>MESSAGE_BODY</p>
</div>
<div class="unsubscribe">
<p>
UNSUBSCRIBE_TEXT_HE
<a href="UNSUBSCRIBE_URL">UNSUBSCRIBE_LINK_HE</a>
</p>
<p>COMPANY_ADDRESS</p>
</div>
</div>
</body>
</html>כללי RTL קריטיים:
dir="rtl" על אלמנט השורשtext-align: right כברירת מחדל<span dir="ltr">לספקי אינטרנט ישראליים יש דפוסים ספציפיים המשפיעים על יכולת המסירה:
| ספק | דומיין דוא"ל | הערות |
|---|---|---|
| בזק | @bezeq.net, @bezequint.net | מסנני ספאם שמרנים, חממו לאט |
| HOT | @hot.co.il, @hotmail.co.il | עקבו אחרי שיעורי חזרות בקפידה |
| פרטנר (012) | @012.net.il | הגבלת קצב אגרסיבית |
| סלקום | @cellcom.co.il | יכולת מסירה סטנדרטית |
| וואלה! | @walla.co.il | ווב-מייל ישראלי פופולרי, בדקו הצגת תמונות |
| Gmail IL | @gmail.com | מסנני Google סטנדרטיים, כותרות בעברית תקינות |
שיטות עבודה מומלצות לשליחה בישראל:
לפי חוק הספאם, כל דוא"ל מסחרי חייב לכלול מנגנון הסרה ברור ופעיל בעברית.
def generate_unsubscribe_section(unsub_url: str, company_name: str) -> dict:
"""Generate bilingual unsubscribe section for Israeli emails."""
return {
"he": (
f"אינך מעוניין/ת לקבל הודעות מ-{company_name}? "
f'<a href="{unsub_url}">לחצ/י כאן להסרה מרשימת התפוצה</a>. '
"ההסרה תתבצע תוך 2 ימי עסקים."
),
"en": (
f"Don't want to receive emails from {company_name}? "
f'<a href="{unsub_url}">Click here to unsubscribe</a>. '
"Removal will be processed within 2 business days."
)
}דרישות הסרה לפי חוק הספאם:
חוק הגנת הצרכן הישראלי מעניק זכות ביטול של 14 יום לעסקאות שנעשו דרך תקשורת מסחרית:
def cancellation_notice_required(transaction_type: str) -> dict:
"""Check 14-day cancellation requirements for email-driven transactions."""
rules = {
"cooling_off_period_days": 14,
"notice_required": True,
"applies_to": [
"Purchases made via email promotions",
"Subscriptions initiated from email campaigns",
"Services booked through email offers"
],
"must_include_in_email": [
"Clear pricing in NIS (including VAT)",
"Cancellation rights notice in Hebrew",
"Business registration number",
"Contact details for cancellation requests"
]
}
return rulesהשתמשו בסקריפט הבדיקה המצורף כדי לאמת את קמפיין הדוא"ל:
python scripts/check_email.py --html campaign.html --consent-db consents.jsonהסקריפט בודק:
המשתמש אומר: "צרו קמפיין דוא"ל בעברית למבצע פסח" פעולות:
המשתמש אומר: "הקימו דוא"ל אישור הזמנה בעברית לאתר המסחר שלנו" פעולות:
המשתמש אומר: "אנחנו עוברים מ-Mailchimp ל-SendGrid, איך מטפלים ברשומות הסכמה ישראליות?" פעולות:
המשתמש אומר: "אנחנו שולחים גם דוא"ל וגם SMS ללקוחות, האם מערך ההסכמות שלנו נכון?" פעולות:
scripts/check_email.py -- מאמת HTML של קמפיין דוא"ל מול דרישות חוק הספאם הישראלי. בודק קישורי הסרה בעברית, סימון RTL, טקסט משפטי נדרש ושלמות רשומות הסכמה. הרצה: python scripts/check_email.py --helpreferences/anti-spam-law.md -- סיכום תיקון 40 לחוק התקשורת (חוק הספאם): דרישות הסכמה, קנסות, חריגים, דפוסי אכיפה והשוואה עם חוקי ספאם בינלאומיים. התייעצו בעת אימות תאימות קמפיין או ייעוץ בנושא ארכיטקטורת הסכמות.סיבה: דוא"ל הנמען לא נמצא במסד ההסכמות או שההסכמה בוטלה. פתרון: ודאו שהנמען הסכים מפורשות. לפי החוק הישראלי, אסור לשלוח דוא"ל מסחרי ללא הסכמה מוקדמת. בדקו שההסכמה נרשמה עם חותמת זמן ומקור.
סיבה: Outlook משתמש במנוע הצגה של Word שמטפל ב-RTL בצורה לא עקבית.
פתרון: הוסיפו dir="rtl" לכל תא טבלה בנפרד, לא רק לעטיפה. השתמשו בסגנונות inline במקום מחלקות CSS עבור מאפייני כיוון.
סיבה: שליחה מהירה מדי לדומיינים של ספקים ישראליים או היגיינת רשימה ירודה. פתרון: יישמו הגבלת קצב לפי דומיין (מקסימום 100/שעה לבזק, 200/שעה ל-HOT). הסירו חזרות קשות מיידית. חממו בהדרגה על כתובות IP חדשות.
סוכנים נתמכים
ציון אמון
הסקיל יכול להריץ סקריפטים ופקודות על המערכת שלך.
נמצאו 1 התאמות בקוד
הסקיל יכול לבצע בקשות רשת לשירותים חיצוניים.
נמצאו 1 התאמות בקוד
בניית תהליכי אוטומציה לווטסאפ בשוק הישראלי כולל צ'אטבוטים, תגובות אוטומטיות, תזמון קמפיינים ותזמון מודע לשבת וחגים
חיפוש עבודה, מיטוב קורות חיים והשוואת שכר בשוק הישראלי
אוטומציה ומיטוב תהליכי עבודה ב-Monday.com לצוותים ישראליים
רוצים לבנות סקיל משלכם? נסו את יוצר הסקילס · הגשת סקיל