התקנת mail PHP על שרת פיתוח

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

אחת הבעיות המציקות ביותר כאשר אנו מקימים שרת פיתוח מבוסס לינוקס היא כיצד לגרום לפונקצית ה-mail של PHP לעבוד? הרי ברוב המקרים אין לנו את הידע והיכולת להתקין שרת מייל ואנחנו בסך הכל רוצים לבדוק את פונקצית המייל שלנו. למרבה המזל, קל מאד לגרום לפונקציות המייל לעבוד באמצעות PHP PEAR. משמעות המושג PHP PEAR היא אוסף עצום של רכיבים ל-PHP שניתן להתקין את כולם או חלק מהם. לא מעט מתכנתים עושים שימוש בהרחבות של PEAR וחוסכים זמן רב. אנחנו הפעם נשתמש ב-PEAR על מנת לחסוך את הזמן שנדרש להתקנת שרת מייל. ראשית, אנו נפתח את הקונסולה שלנו ונתקין את PHP PEAR.:


sudo apt-get install php-pear

אחרי שהתקנו את PEAR, אנו יכולים לגשת למלאכת התקנת ההרחבות שאנחנו צריכים.

ראשית נתקין את הרחבת mail:


sudo pear install mail

אחרי כן נתקין את Net_SMTP:


sudo pear install Net_SMTP

אחרי כן נתקין את Auth_SASL:


sudo pear install Auth_SASL

ולבסוף נתקין את Mail Mime:


sudo pear install mail_mime

אחרי שסיימנו להתקין את כל ההרחבות האלו, אנו נתקין את postfix שהיא בעצם mailserver חמודה לשרתי יוניקס ולינוקס. בהתקנה התוכנה תבקש מאיתנו להכניס שתי הגדרות. ההגדרה הראשונה היא Internet Site וההגדרה השניה היא localhost (צריך לשנות את מה שכתוב שם).


sudo apt-get install postfix

עכשיו כל מה שנותר לנו לעשות זה לבדוק את שליחת המייל, אני משתמש מזה שנים בקוד לשליחת מייל על מנת לבדוק אם שרת ה-PHP תומך במשלוח מייל. (לא אני כתבתי אותו אבל לצערי אני לא זוכר מאיפה הוא הגיע). אל תשכחו להחליף את המייל שלכם:


< ?php
include('Mail.php');
include('Mail/mime.php');
// Constructing the email
$sender = "Ran ";
$recipient = "Ran ";
$subject = "This Test Email";
$text = 'This is a test text message.';
$html = '

This is a test HTML body

'; $crlf = "\n"; $headers = array( 'From' => $sender, 'Return-Path' => $sender, 'Subject' => $subject ); // Creating the Mime message $mime = new Mail_mime($crlf); // Setting the body of the email $mime->setTXTBody($text); $mime->setHTMLBody($html); // Set body and headers ready for base mail class $body = $mime->get(); $headers = $mime->headers($headers); // SMTP params $smtp_params["host"] = "localhost"; // SMTP host $smtp_params["port"] = "25"; // SMTP Port (usually 25) // Sending the email using smtp $mail = Mail::factory("smtp", $smtp_params); $result = $mail->send($recipient, $headers, $body); if($result == 1) { echo("Your message has been sent!"); } else { echo("Your message was not sent: " . $result); }

זה הכל! מעכשיו השרת יוכל לשלוח מייל ואתם תוכלו לבדוק את האפליקציות שלכם – שימו לב שאם אתם משתמשים בג'ימייל, סביר להניח שמייל שיישלח משרת הפיתוח שלכם יוגלה לזבל, אז לא להכנס ללחץ…

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

פיתוח ב-JavaScript

Axios interceptors

תכנון נכון של קריאות AJAX באפליקציה ריאקטית וניהול השגיאות או ההצלחות עם פיצ׳ר נחמד של axios

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

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

גלילה לראש העמוד