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

הבעיה

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

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

הפתרון

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

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

הפעלת SMTP ב-WordPress

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

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

function dorzki_send_mail_using_smtp( $phpmailer ) {

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

}

add_action( 'phpmailer_init', 'dorzki_send_mail_using_smtp' );
  • שורה 3 // אנחנו מודיעים כי אנחנו מעוניינים להשתמש ב-SMTP.
  • שורה 4 // אנחנו מגדירים את שרת ה-SMTP שבו נשתמש, בדוגמא הבאה אנחנו משתמשים בשרת של Gmail.
  • שורה 5 // פרוטוקול SMTP משתמש בלרוב בפורט 25, אך Gmail משתמשים בפורט 587 עקב זאת שהם מצפינים את התקשורת בין השרת שלנו לבין השרת שלהם.
  • שורה 6 // שם המשתמש (לרוב זוהי כתובת המייל).
  • שורה 7 // סיסמאת ההתחברות.
  • שורה 8 // אנחנו מודיעים כי אנחנו רוצים לבצע אימות והצפנה של התקשורת בין השרתים.
  • שורה 9 // אנחנו משתמשים בפרוטוקול tls על מנת להצפין (ניתן גם ssl בחלק מהשרתים).
  • שורה 10 // כתובת המייל שממנה נשלח (מומלץ להגדיר את אותה התיבה שאליה אנחנו מתחברים).
  • שורה 11 // השם של השולח, שמתי לצורך הדוגמא את שם האתר.

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

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

סיכום

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

בהצלחה!

תגובות לפוסט

כתיבת תגובה