31 Email and Frameworks in PHP
Bhumika Shah
Email in PHP
• PHP uses Mail() function to send an email from your website.
• Parameters required
• (Receipient’s email address, subject , body)
• Optional parameters
• (Header, parameters)
mail (to,subject,message,headers,parameters)
Though , using mail() is quiet simple , but it involves lot of considerations. You need to check the web server, SMTP, authentication etc. which makes writing mail program cumbersome.
The code for simple mail function is as follows:
<?php
$mesg= “Welcome to e-pgpathshala”;
$headers=”From: bhumikagshah@gmail.com”;
$str=mail(“bhumikagshah@gmail.com”,”Test Mail”,$mesg,$headers);
if ($str==true)
{
echo “Message sent “;
}else
{
echo “Message not sent”;
}
?>
The above program would immediately return you Message sent, but might always not result is success.Hence to overcome , the uncertainties we have used the phpmailer() , which is available for download on
github.
PHPMailer()
• It is a type of library which has a collection of functions that provide with building and sending email messages. It supports various ways of sending mails like mail(), qmail, direct SMTP mail etc.
• We would be using PHPmailer to send our E-Mail.
Program for Sending Mail
<?php
require ‘PHPMailer-Master/PHPMailerAutoload.php’;
$mail = new phpmailer();
//spl_autoload()
$mail->isSMTP();
// Set mailer to use SMTP
$mail->Host = ‘smtp.gmail.com’;
// Specify main and backup SMTP servers
$mail->SMTPAuth = true;
// Enable SMTP authentication
$mail->Username = ‘bhumikagshah@gmail.com’;
// SMTP username
$mail->Password = ‘Your Password’; // SMTP password
$mail->SMTPSecure = ‘tls’;
// Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom(‘bhumikagshah@gmail.com’, ‘epgpathshahla’);
$mail->addReplyTo(‘bhumikagshah@gmail.com’, ‘epgpathshala’);
$mail->addAddress(‘bhumikagshah@gmail.com’); // Add a recipient
$mail->addCC(‘cc@example.com’);
$mail->addBCC(‘bcc@example.com’);
$mail->isHTML(true); // Set email format to HTML
$bodyContent = ‘<h1>How to Send Email using PHP in Localhost by Bhumika </h1>’;
$bodyContent .= ‘<p>This is the HTML email sent from localhost using PHP script by <b>bhumika</b></p>’;
$mail->Subject = ‘Email from Localhost by Bhumika’; $mail->Body = $bodyContent;
if(!$mail->send()) {
echo ‘Message could not be sent.’;
echo ‘Mailer Error: ‘ . $mail->ErrorInfo;
} else {
echo ‘Message has been sent’;
}?>
You will also have to include Autoloader file of the part of library , which we have used on top of the program , The code of autoloader program is as follows :
* PHPMailer SPL autoloader.
* @param string $classname The name of the class to load */
function PHPMailerAutoload($classname)
{
//Can’t use __DIR__ as it’s only in PHP 5.3+
$filename =
dirname(__FILE__).DIRECTORY_SEPARATOR.’class.’.strtolower($classname).’.php’;
if (is_readable($filename)) {
require $filename;
}
}
if (version_compare(PHP_VERSION, ‘5.1.2’, ‘>=’)) { //SPL autoloading was introduced in PHP 5.1.2
if (version_compare(PHP_VERSION, ‘5.3.0’, ‘>=’)) {
spl_autoload_register(‘PHPMailerAutoload’, true, true);
} else {
spl_autoload_register(‘PHPMailerAutoload’);
}
} else { /**
* Fall back to traditional autoload for old PHP versions
* @param string $classname The name of the class to load */
function __autoload($classname)
{
PHPMailerAutoload($classname);
} }
Test Mail
Mail.php
<?php
$mail=new PHPMailer();
$mail->SMTPDebug=0;
$mai ->IsSMTP();
$mail->SMTPauth=true;
$mail->SMTPSecure=’ssl’;
$mail->Host=”smtp.gmail.com”;
$mail->Port=587;
$mail->IsHTML(true);
$mail->Username=”bhumikagshah@gmail.com”;
$mail->Password=”Your Password”;
$mail->SetFrom(“bhumikagshah@gmail.com”);
$mail->Subject=”This is My Email subject”;
$mail->Body=”This is Body of send email”;
$mail->AddAddress(“bhumikagshah@gmail.com”);
if(!$mail->Send())
{
echo “Mail Error:”.$mail->ErrorInfo;
}
else
{
echo “Message has been sent”;
}
?>
Troubleshooting Mail issues
Gmail Security settings
You will have to edit , Gmail security settings so as to allow mail from programs.
Visit : accounts.google.com
After allowing lesser secure apps , you will be able to get mail from your program
Troubleshooting Email program:
• Check Gmail security
• Check SMTP
• Php.ini
• Sendmail.ini
Frameworks in PHP
• Provides structured way, with built-in modules : Frameworks give users a basic structure with built in modules to develop applications faster and with much ease
• uses MVC Architecture: Frameworks in PHP use MVC architecture, wherein the business logic exists independently of data layer and presentation layer.
• Enforces coding standards and development guidelines : The framework enforces the development standards and development guidelines which helps in standardizing the development process
• Improved stability and Quality : Dividing modules in parts increases the development speed and hence improves scalability and quality
• Easy to upgrade and maintain developed application
• Good community support
Types of Frameworks for PHP
• Laravel
• Codeigniter
• CakePHP
• Symfony
• Zend Framework
We will take an overview of each of the Framework and CodeIgniter Framework in detail.
LARAVEL
• Popularly known as Framework for Web Artisans, Laravel is open source framework which follows MVC architecture and consists of simple toolkit which enables developers to create complex web applications easily. Additionally, it also provides robust security features. It has a huge ecosystem with instant hosting and deployment
CakePHP
• Already a decade old, CakePHP is designed to ease the common web development tasks and consists of all-in-one toolbox. It can exist isolated and also as a whole. The rich set of libraries make coding easy for developers
Symfony
• Popularly known as PHP web application framework, it is a set of reusable PHP components/libraries. It helps in reducing repetitive tasks and has a low performance overhead. It has set of tools and a development methodology.
Zend Framework
• It is an object oriented framework which is basically a collection of professional PHP packages. It has a collection of 60+ packages. Due to its configuration options, it is not recommended for small projects, but works best for the complex projects.
Codeigniter
• It is a light weight PHP framework . Code igniter is known for its flexibility and easy installation.
• CodeIgniter is popular among beginners and developers as it is very easy to learn and has a rich set of APIs.
• The crud (create/read/update/delete) functionality is well integrated hence database related tasks are implemented easily and quickly.
you can view video on Email and Frameworks in PHP |
References
- ww.php.net
- PHP and MySQL Web Development, “Luke Welling , Laura Thomson”, Pearson Publications.
- www.codexworld.com
- https://github.com/PHPMailer/PHPMailer/
- https://codeigniter.com/download