<?php
namespace Application\Model;
use Zend\Mail\Message;
use Zend\Mime\Message as MimeMessage;
use Zend\Mime\Part as MimePart;
use Zend\Mail\Transport\Sendmail as SendmailTransport;
use Zend\Mail\Transport\Smtp as SmtpTransport;
use Zend\Mail\Transport\SmtpOptions;
use Zend\View\Renderer\PhpRenderer;
use Zend\View\Resolver\TemplatePathStack;
use Zend\View\Model\ViewModel;
use Zend\View\Model\ModelInterface;
class ApiEmail extends ApiInterface {
protected $From = "XXXXX@gmail.com";
protected $FromName = "XXXX";
protected $To = "" ;
protected $Subject = "" ;
protected $Body = "" ;
protected $Cc = "XXXXXX@gmail.com";
protected $Bcc = "XXXXX@gmail.com" ;
protected $ReplyTo = "XXXX@gmail.com" ;
protected $Sender = "" ;
protected $Encoding = "UTF-8" ;
protected $MESSAGE ;
// getter setter
public function __get($prop){ return $this->$prop; }
/**
* Saves protected properties
* @param string $prop
* @param mixed $val
*/
public function __set($prop, $val){ $this->$prop = $val; }
public function prepareData() {
$message = new Message();
$message->addFrom( $this->__get('From'), $this->__get('FromName') );
$message->addTo($this->__get('To'));
$message->setSubject($this->__get('Subject'));
$message->setBody($this->__get('Body'));
$message->addCc($this->__get('Cc'));
$message->addBcc($this->__get('Bcc'));
$message->addReplyTo( $this->__get('ReplyTo') , "Hello Bihari Doctor");
$message->setEncoding( $this->__get('Encoding'));
$this->__set("MESSAGE" , $message );
// echo $message->toString(); exit();
}
public function smtpOptions(){
$options = new SmtpOptions(array(
'name' => 'doctors.patel.com',
'host' => 'gmail.com',
'connection_class' => 'plain',
'port' => '587',
'connection_config' => array(
'ssl' => 'TLS', /* Page would hang without this line being added */
'username' => 'XXXXXXXXXXXXXXXXXXXX',
'password' => 'XXXXXXXXXXXXXXXXXXXXXXX',
),
));
return $options;
}
public function send() {
$this->prepareData();
// $transport = new SendmailTransport();
$transport = new SmtpTransport();
$transport->setOptions($this->smtpOptions());
$transport->send( $this->__get('MESSAGE') );
}
public function loadTpl( $Data = array() , $temlate = "join" ){
$renderer = new PhpRenderer();
$resolver = new TemplatePathStack();
$view = new ViewModel( array( 'data' => $Data) );
$view->setTerminal(true);
$view->setTemplate( $temlate );
$resolver->setPaths(array(
__DIR__ . '/../../../view/emails/'
));
$renderer->setResolver($resolver);
$content = $renderer->render($view);
if ($view instanceof ModelInterface) {
$body = $renderer->render($view);
}
else {
throw new \Exception('Invalid view for mail body');
}
$html = new MimePart($content);
$html->type = "text/html";
$body = new MimeMessage();
$body->setParts(array($html));
return $body;
}
// email
public function sendJoinEmail($Data){
$this->__set("To", $Data['email'] );
$body = $this->loadTpl( $Data , "join" );
$this->__set("Subject", "Doctor Join Request" );
$this->__set("Body", $body );
$this->__set("Encoding", "UTF-8" );
$this->send();
}
}
and
Folder emails contain join.phtml file
namespace Application\Model;
use Zend\Mail\Message;
use Zend\Mime\Message as MimeMessage;
use Zend\Mime\Part as MimePart;
use Zend\Mail\Transport\Sendmail as SendmailTransport;
use Zend\Mail\Transport\Smtp as SmtpTransport;
use Zend\Mail\Transport\SmtpOptions;
use Zend\View\Renderer\PhpRenderer;
use Zend\View\Resolver\TemplatePathStack;
use Zend\View\Model\ViewModel;
use Zend\View\Model\ModelInterface;
class ApiEmail extends ApiInterface {
protected $From = "XXXXX@gmail.com";
protected $FromName = "XXXX";
protected $To = "" ;
protected $Subject = "" ;
protected $Body = "" ;
protected $Cc = "XXXXXX@gmail.com";
protected $Bcc = "XXXXX@gmail.com" ;
protected $ReplyTo = "XXXX@gmail.com" ;
protected $Sender = "" ;
protected $Encoding = "UTF-8" ;
protected $MESSAGE ;
// getter setter
public function __get($prop){ return $this->$prop; }
/**
* Saves protected properties
* @param string $prop
* @param mixed $val
*/
public function __set($prop, $val){ $this->$prop = $val; }
public function prepareData() {
$message = new Message();
$message->addFrom( $this->__get('From'), $this->__get('FromName') );
$message->addTo($this->__get('To'));
$message->setSubject($this->__get('Subject'));
$message->setBody($this->__get('Body'));
$message->addCc($this->__get('Cc'));
$message->addBcc($this->__get('Bcc'));
$message->addReplyTo( $this->__get('ReplyTo') , "Hello Bihari Doctor");
$message->setEncoding( $this->__get('Encoding'));
$this->__set("MESSAGE" , $message );
// echo $message->toString(); exit();
}
public function smtpOptions(){
$options = new SmtpOptions(array(
'name' => 'doctors.patel.com',
'host' => 'gmail.com',
'connection_class' => 'plain',
'port' => '587',
'connection_config' => array(
'ssl' => 'TLS', /* Page would hang without this line being added */
'username' => 'XXXXXXXXXXXXXXXXXXXX',
'password' => 'XXXXXXXXXXXXXXXXXXXXXXX',
),
));
return $options;
}
public function send() {
$this->prepareData();
// $transport = new SendmailTransport();
$transport = new SmtpTransport();
$transport->setOptions($this->smtpOptions());
$transport->send( $this->__get('MESSAGE') );
}
public function loadTpl( $Data = array() , $temlate = "join" ){
$renderer = new PhpRenderer();
$resolver = new TemplatePathStack();
$view = new ViewModel( array( 'data' => $Data) );
$view->setTerminal(true);
$view->setTemplate( $temlate );
$resolver->setPaths(array(
__DIR__ . '/../../../view/emails/'
));
$renderer->setResolver($resolver);
$content = $renderer->render($view);
if ($view instanceof ModelInterface) {
$body = $renderer->render($view);
}
else {
throw new \Exception('Invalid view for mail body');
}
$html = new MimePart($content);
$html->type = "text/html";
$body = new MimeMessage();
$body->setParts(array($html));
return $body;
}
public function sendJoinEmail($Data){
$this->__set("To", $Data['email'] );
$body = $this->loadTpl( $Data , "join" );
$this->__set("Subject", "Doctor Join Request" );
$this->__set("Body", $body );
$this->__set("Encoding", "UTF-8" );
$this->send();
}
}
and
Folder emails contain join.phtml file
Comments
Post a Comment