
שליחת מייל באמצעות PHP - שיגיע לכל ספקי המיילים בקלות
הכותב: רז בניית אתרים
השתמשתם בפקודות הבסיסיות שבאתר php.net לשליחת מיילים אבל המייל ששלחתם הגיע רק ל-80% מהנמענים? בואו ללמוד איך עושים את זה בשיא הקלות כדי שיגיע לכולם ומהר.
איזה עצבים המיילים מגיעים לספאם
במקרה הטוב, לפעמים הם לא מגיעים בכלל.
כולם מכירים את הבעיה הזו. כדי לשלוח מייל שיגיע לכל הנמענים, במיוחד ששולחים כמות גדולה על בסיס קבוע, צריך מוניטין גבוה וזה דבר שלא פשוט להשיג.
יותר מזה, גם אם השגנו מוניטין גבוה הוא יכול להיפגע די בקלות על ידי זה שמישהו מכניס את המיילים שלכם על בסיס קבוע לספאם או אפילו מטרגט אתכם כספאמרים.
כולם מכירים את הבעיה הזו. כדי לשלוח מייל שיגיע לכל הנמענים, במיוחד ששולחים כמות גדולה על בסיס קבוע, צריך מוניטין גבוה וזה דבר שלא פשוט להשיג.
יותר מזה, גם אם השגנו מוניטין גבוה הוא יכול להיפגע די בקלות על ידי זה שמישהו מכניס את המיילים שלכם על בסיס קבוע לספאם או אפילו מטרגט אתכם כספאמרים.
ניסיתי גם לעבוד עם phpmailer ולא עבד
ברור. phpmailer כלי טוב לשליחת מיילים שדואג כמעט להכל אבל זה לא אומר שזה הפתרון.
המטרה שלו היא לייעל את תהליך השליחה ולדאוג שכל הדברים במקום כמו למשל אם שולחים מייל בעברית אז שיהיה UTF8 כי בלעדיו המייל יכול להיכנס בג׳יבריש ולא להגיע לתבת המייל.
אז phpmailer זה סוג של מקדם ראשוני למיילים שלכם אבל הוא לא הכל.
המטרה שלו היא לייעל את תהליך השליחה ולדאוג שכל הדברים במקום כמו למשל אם שולחים מייל בעברית אז שיהיה UTF8 כי בלעדיו המייל יכול להיכנס בג׳יבריש ולא להגיע לתבת המייל.
אז phpmailer זה סוג של מקדם ראשוני למיילים שלכם אבל הוא לא הכל.
הכירו את הפתרון - שרת מיילים ייעודי
אני אישית עובד עם sendgrid.com וזה פשוט אחלה. זה דואג לכל הבעיות.
במקום לשלוח מייל מהמוניטין של כתובת ה-ip של השרת שלי שעשוייה להיפגע אני עובד עם שרת מיילים וזה יכול לשלוח 5000 מיילים במכה אחת לאיזה נמען שרק תרצו בלי להגיע לשום ספאם. אף פעם.
למה? כי גם אם מישהו מציב את זה כספאם מתישהו אז הם דואגים לשלוח באמצעות ip חדש.
בזמן הזה הם דואגים להוריד את החסימה מאותו ip עם מוניטין נמוך, מעלים לו את המונטין בחזרה ובכך הם משתמשים בו שנית. בעצם יש להם מערך של ip עם מונטין גבוה.
לא זו בלבד שיש להם מערכת שאומרת לכם אם המייל הגיע, אם פתחו אותו ואפילו אם לחצו עליו.
נו, תענוג.
במקום לשלוח מייל מהמוניטין של כתובת ה-ip של השרת שלי שעשוייה להיפגע אני עובד עם שרת מיילים וזה יכול לשלוח 5000 מיילים במכה אחת לאיזה נמען שרק תרצו בלי להגיע לשום ספאם. אף פעם.
למה? כי גם אם מישהו מציב את זה כספאם מתישהו אז הם דואגים לשלוח באמצעות ip חדש.
בזמן הזה הם דואגים להוריד את החסימה מאותו ip עם מוניטין נמוך, מעלים לו את המונטין בחזרה ובכך הם משתמשים בו שנית. בעצם יש להם מערך של ip עם מונטין גבוה.
לא זו בלבד שיש להם מערכת שאומרת לכם אם המייל הגיע, אם פתחו אותו ואפילו אם לחצו עליו.
נו, תענוג.
קצת קוד דוגמא
כדי להפעיל את זה חפשו ב-Github את הספרייה של phpmailer
נתחיל עם קוד לדוגמה של הפונקציה:
נתחיל עם קוד לדוגמה של הפונקציה:
<?
require 'PHPMailerAutoload.php';
function send_mail($mailbox, $password, $to, $subject, $message) {
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.sendgrid.net';
$mail->SMTPAuth = true;
$mail->Username = 'apikey';
$mail->Password = "YOUR_PASSWORD_HERE"; // SMTP password
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mailbox = explode("^", $mailbox);
$sender = $mailbox[0];
$sender_name = $mailbox[1];
if (!$sender_name)
$sender_name = "הודעה אוטומטית";
$mail->setFrom($sender, $sender_name);
$to = explode(", ", $to);
for ($m=0; $m<count($to); $m++)
{
$mail->addAddress($to[$m], $to[$m]);
}
$mail->addReplyTo($sender, $sender_name);
$mail->isHTML(true);
$mail->CharSet = 'UTF-8';
$mail->Subject = $subject;
$mail->Body = $message;
return $mail->send();
}
?>
require 'PHPMailerAutoload.php';
function send_mail($mailbox, $password, $to, $subject, $message) {
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.sendgrid.net';
$mail->SMTPAuth = true;
$mail->Username = 'apikey';
$mail->Password = "YOUR_PASSWORD_HERE"; // SMTP password
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mailbox = explode("^", $mailbox);
$sender = $mailbox[0];
$sender_name = $mailbox[1];
if (!$sender_name)
$sender_name = "הודעה אוטומטית";
$mail->setFrom($sender, $sender_name);
$to = explode(", ", $to);
for ($m=0; $m<count($to); $m++)
{
$mail->addAddress($to[$m], $to[$m]);
}
$mail->addReplyTo($sender, $sender_name);
$mail->isHTML(true);
$mail->CharSet = 'UTF-8';
$mail->Subject = $subject;
$mail->Body = $message;
return $mail->send();
}
?>
נפעיל אותה באמצעות:
$mailbox = "info@razwebs.co.il^raz buchnik";
$password = "YOUR_PASSWORD_HERE";
$subject = "check";
$message = "check";
$to = "razwebs@gmail.com";
$data = send_mail($mailbox, $password, $to, $subject, $message);
$password = "YOUR_PASSWORD_HERE";
$subject = "check";
$message = "check";
$to = "razwebs@gmail.com";
$data = send_mail($mailbox, $password, $to, $subject, $message);
זהו והמייל יישלח בוודאות. בדקו ועקבו אחריו באמצעות המערכת שבאתר של sendgrid.