31 Email and Frameworks in PHP

Bhumika Shah

epgp books

 

 

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

  1. ww.php.net
  2. PHP and MySQL Web Development, “Luke Welling , Laura Thomson”, Pearson Publications.
  3. www.codexworld.com
  4. https://github.com/PHPMailer/PHPMailer/
  5. https://codeigniter.com/download