אחת הבעיות המציקות ביותר כאשר אנו מקימים שרת פיתוח מבוסס לינוקס היא כיצד לגרום לפונקצית ה-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);
}
זה הכל! מעכשיו השרת יוכל לשלוח מייל ואתם תוכלו לבדוק את האפליקציות שלכם – שימו לב שאם אתם משתמשים בג'ימייל, סביר להניח שמייל שיישלח משרת הפיתוח שלכם יוגלה לזבל, אז לא להכנס ללחץ…