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

הבעיה

כאמור כמו שהסברתי בפסקת פתיחה, כאשר וורדפרס שולחת מייל היא משתמשת בפונקציית PHP אשר נקראת mail(), פונקציה אשר שולחת את המייל ומשתמש בתיבת ברירת המחדל אשר מוגדרת בשרת. אחת מהפרמטרים שניתן להעביר לפונקציה זו היא header-ים בהם ניתן להגדיר דברים כמו מי השולח, למי להחזיר, האם המייל צריך לתמוך ב-HTML וכד׳.

כאשר WordPress משתמשת בפונקציה זו, היא שולחת Header שהתיבת מייל ששולחת היא wordpress@example.com, כאשר example.com מוחלף בכתובת האתר שלכם. לרוב, ספקיות המייל הגדולות על מנת להילחם בספאם, בודקות האם כתובת השולח זהה לכתובת המקור שממנה הגיעה ההודעה, וכאשר ההודעות מ-WordPress מגיעות עם כתובת שונה מכתובת המקור, זה מסמן דגל אדום אצלן ולכן הן מתייגות את הודעת המייל כספאם.

הפתרון

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

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

הפעלת SMTP ב-WordPress

לא הרבה יודעים, אך וורדפרס כוללת את הסיפרייה הנ״ל בקבצי המערכת שלה, אך אם זהו המצב, מדוע זה לא שמיש כברירת מחדל? – כאמור WordPress היא מערכת מאוד פשוטה למשתמש ומאוד חזקה למפתחים, ומעצם הידידותיות שלה, היא משתמש בשליחת מיילים לא דרך SMTP בברירת המחדל על מנת לא לסבך את המשתמשים.

על מנת להשתמש ב-PHPMailer ב-WordPress נעתיק את הקוד הבא ונדביק אותו בסוף קובץ ה-functions.php, לצורך המחשה אסביר איך להתחבר לתיבת ה-Gmail שלכם.

/**
 * Enable WordPress to send emails via SMTP.
 *
 * @since 1.0.0
 */
function dorzki_send_mail_using_smtp( $phpmailer ) {

  $phpmailer->isSMTP();
  $phpmailer->IsHTML(true);
  $phpmailer->Host = 'smtp.gmail.com';
  $phpmailer->Port = 587;
  $phpmailer->Username = 'email@gmail.com';
  $phpmailer->Password = 'some password';
  $phpmailer->SMTPAuth = true;
  $phpmailer->SMTPSecure = 'tls';
  $phpmailer->From = 'email@gmail.com';
  $phpmailer->FromName = get_bloginfo( 'name' );

}

add_action( 'phpmailer_init', 'dorzki_send_mail_using_smtp' );

אימות דו-שלבי

במידה ולתיבת ה-Gmail שלכם אתם משתמשים באימות 2 שלבי, יש להגדיר סיסמא ש-Google תייצר לכם על מנת שלא יהיה צורך באימות כפול אשר לא נתמך ב-SMTP, על מנת לייצר סיסמא זו נכנס למרכז הפרטיות בקישור הבא ונבחר בשירות את הדוא״ל ובמכשיר נבחר ״אחר״, כעת תקבלו סיסמא באורך 16 תווים שזוהי הסיסמא שלכם.

סיכום

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

בהצלחה!

    כתיבת תגובה

    1. אסתי

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

      הגב
      1. דור צוברי

        היי אסתי,
        האם את משתמשת ב-G-Suite או Office 365 בתור ניהול תיבות המייל שלך?

    2. חגית

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

      הגב
      1. דור צוברי

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

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

      2. חגית

        תודה דור על תשובתך.
        אני מקבלת הודעת שגיאה:
        SMTP Error: Could not authenticate
        הסיסמא בטוח נכונה. מה עוד זה יכול להיות?

      3. דור צוברי

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

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

    שתפו