Preview: test.php
Size: 12.33 KB
/home/jambtst2015/public_html/giraffeng.com/admin/test.php
<?php
$db_host="localhost";
$db_user="infosolz_satnew";
$db_pass="p@ssw0rd";
$db_name="infosolz_satnew";
$sql_select=mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
//select database
mysql_select_db($db_name, $sql_select) or die("could not find DB.");
class Mail
{
/*
list of To addresses
@var array
*/
var $sendto = array();
/*
@var array
*/
var $acc = array();
/*
@var array
*/
var $abcc = array();
/*
paths of attached files
@var array
*/
var $aattach = array();
/*
list of message headers
@var array
*/
var $xheaders = array();
/*
message priorities referential
@var array
*/
var $priorities = array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );
/*
character set of message
@var string
*/
var $charset = "us-ascii";
var $ctencoding = "7bit";
var $receipt = 0;
/*
Mail contructor
*/
function Mail()
{
$this->autoCheck( true );
$this->boundary= "--" . md5( uniqid("myboundary") );
}
/*
activate or desactivate the email addresses validator
ex: autoCheck( true ) turn the validator on
by default autoCheck feature is on
@param boolean $bool set to true to turn on the auto validation
@access public
*/
function autoCheck( $bool )
{
if( $bool )
$this->checkAddress = true;
else
$this->checkAddress = false;
}
/*
Define the subject line of the email
@param string $subject any monoline string
*/
function Subject( $subject )
{
$this->xheaders['Subject'] = strtr( $subject, "\r\n" , " " );
}
/*
set the sender of the mail
@param string $from should be an email address
*/
function From( $from )
{
if( ! is_string($from) ) {
echo "Class Mail: error, From is not a string";
exit;
}
$this->xheaders['From'] = $from;
}
/*
set the Reply-to header
@param string $email should be an email address
*/
function ReplyTo( $address )
{
if( ! is_string($address) )
return false;
$this->xheaders["Reply-To"] = $address;
}
/*
add a receipt to the mail ie. a confirmation is returned to the "From" address (or "ReplyTo" if defined)
when the receiver opens the message.
@warning this functionality is *not* a standard, thus only some mail clients are compliants.
*/
function Receipt()
{
$this->receipt = 1;
}
/*
set the mail recipient
@param string $to email address, accept both a single address or an array of addresses
*/
function To( $to )
{
// TODO : test validité sur to
if( is_array( $to ) )
$this->sendto= $to;
else
$this->sendto[] = $to;
if( $this->checkAddress == true )
$this->CheckAdresses( $this->sendto );
}
/* Cc()
* set the CC headers ( carbon copy )
* $cc : email address(es), accept both array and string
*/
function Cc( $cc )
{
if( is_array($cc) )
$this->acc= $cc;
else
$this->acc[]= $cc;
if( $this->checkAddress == true )
$this->CheckAdresses( $this->acc );
}
/* Bcc()
* set the Bcc headers ( blank carbon copy ).
* $bcc : email address(es), accept both array and string
*/
function Bcc( $bcc )
{
if( is_array($bcc) ) {
$this->abcc = $bcc;
} else {
$this->abcc[]= $bcc;
}
if( $this->checkAddress == true )
$this->CheckAdresses( $this->abcc );
}
/* Body( text [, charset] )
* set the body (message) of the mail
* define the charset if the message contains extended characters (accents)
* default to us-ascii
* $mail->Body( "mél en français avec des accents", "iso-8859-1" );
*/
function Body( $body, $charset="" )
{
$this->body = $body;
if( $charset != "" ) {
$this->charset = strtolower($charset);
if( $this->charset != "us-ascii" )
$this->ctencoding = "8bit";
}
}
/* Organization( $org )
* set the Organization header
*/
function Organization( $org )
{
if( trim( $org != "" ) )
$this->xheaders['Organization'] = $org;
}
/* Priority( $priority )
* set the mail priority
* $priority : integer taken between 1 (highest) and 5 ( lowest )
* ex: $mail->Priority(1) ; => Highest
*/
function Priority( $priority )
{
if( ! intval( $priority ) )
return false;
if( ! isset( $this->priorities[$priority-1]) )
return false;
$this->xheaders["X-Priority"] = $this->priorities[$priority-1];
return true;
}
/*
Attach a file to the mail
@param string $filename : path of the file to attach
@param string $filetype : MIME-type of the file. default to 'application/x-unknown-content-type'
@param string $disposition : instruct the Mailclient to display the file if possible ("inline") or always as a link ("attachment") possible values are "inline", "attachment"
*/
function Attach( $filename, $filetype = "", $disposition = "inline" )
{
// TODO : si filetype="", alors chercher dans un tablo de MT connus / extension du fichier
if( $filetype == "" )
$filetype = "application/x-unknown-content-type";
$this->aattach[] = $filename;
$this->actype[] = $filetype;
$this->adispo[] = $disposition;
}
/*
Build the email message
@access protected
*/
function BuildMail()
{
// build the headers
$this->headers = "";
// $this->xheaders['To'] = implode( ", ", $this->sendto );
if( count($this->acc) > 0 )
$this->xheaders['CC'] = implode( ", ", $this->acc );
if( count($this->abcc) > 0 )
$this->xheaders['BCC'] = implode( ", ", $this->abcc );
if( $this->receipt ) {
if( isset($this->xheaders["Reply-To"] ) )
$this->xheaders["Disposition-Notification-To"] = $this->xheaders["Reply-To"];
else
$this->xheaders["Disposition-Notification-To"] = $this->xheaders['From'];
}
if( $this->charset != "" ) {
$this->xheaders["Mime-Version"] = "1.0";
$this->xheaders["Content-Type"] = "text/html; charset=utf-8\r";
$this->xheaders["Content-Transfer-Encoding"] = $this->ctencoding;
}
$this->xheaders["X-Mailer"] = "Php/libMailv1.3";
// include attached files
if( count( $this->aattach ) > 0 ) {
$this->_build_attachement();
} else {
$this->fullBody = $this->body;
}
reset($this->xheaders);
while( list( $hdr,$value ) = each( $this->xheaders ) ) {
if( $hdr != "Subject" )
$this->headers .= "$hdr: $value\n";
}
}
/*
fornat and send the mail
@access public
*/
function Send()
{
$this->BuildMail();
$this->strTo = implode( ", ", $this->sendto );
// envoie du mail
$res = @mail( $this->strTo, $this->xheaders['Subject'], $this->fullBody, $this->headers );
return $res;
}
/*
* return the whole e-mail , headers + message
* can be used for displaying the message in plain text or logging it
*/
function Get()
{
$this->BuildMail();
$mail = "To: " . $this->strTo . "\n";
$mail .= $this->headers . "\n";
$mail .= $this->fullBody;
return $mail;
}
/*
check an email address validity
@access public
@param string $address : email address to check
@return true if email adress is ok
*/
function ValidEmail($address)
{
if( ereg( ".*<(.+)>", $address, $regs ) ) {
$address = $regs[1];
}
if(ereg( "^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$",$address) )
return true;
else
return false;
}
/*
check validity of email addresses
@param array $aad -
@return if unvalid, output an error message and exit, this may -should- be customized
*/
function CheckAdresses( $aad )
{
/*for($i=0;$i< count( $aad); $i++ ) {
if( ! $this->ValidEmail( $aad[$i]) ) {
echo "Class Mail, method Mail : invalid address $aad[$i]";
exit;
}
}*/
}
/*
check and encode attach file(s) . internal use only
@access private
*/
function _build_attachement()
{
$this->xheaders["Content-Type"] = "multipart/mixed;\n boundary=\"$this->boundary\"";
$this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\n";
$this->fullBody .= "Content-Type: text/html; charset=$this->charset\nContent-Transfer-Encoding: $this->ctencoding\n\n" . $this->body ."\n";
$sep= chr(13) . chr(10);
$ata= array();
$k=0;
// for each attached file, do...
for( $i=0; $i < count( $this->aattach); $i++ ) {
$filename = $this->aattach[$i];
$basename = basename($filename);
$ctype = $this->actype[$i]; // content-type
$disposition = $this->adispo[$i];
if( ! file_exists( $filename) ) {
echo "Class Mail, method attach : file $filename can't be found"; exit;
}
$subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n filename=\"$basename\"\n";
$ata[$k++] = $subhdr;
// non encoded line length
$linesz= filesize( $filename)+1;
$fp= fopen( $filename, 'r' );
$ata[$k++] = chunk_split(base64_encode(fread( $fp, $linesz)));
fclose($fp);
}
$this->fullBody .= implode($sep, $ata);
}
}
//function to get value//
function check_null_value($field1='',$table='',$id='',$value='',$field2=''){
if($value!=''){
$field = '';
if($field2!=''){
$field = $field1.', '.$field2;
}else{
$field = $field1;
}
$sql_title = "select ".$field." from ".$table." where ".$id."='".$value."'";
$qry_title = mysql_query($sql_title);
$qry_num = mysql_num_rows($qry_title);
$arr_title = mysql_fetch_assoc($qry_title);
if($field2!=''){
$val = $arr_title[$field1].' '.$arr_title[$field2];
}else{
$val = $arr_title[$field];
}
if($qry_num>0){
//echo $val;
//echo $qry_num;
return $val;
}else{
return "N/A";
}
}
else{
return "N/A";
}
}
//function to get template//
function emailTempalte($heading='',$body=''){
$content = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>American Business Solutions Inc - SAT</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0" bordercolor="#000000" style="border-collapse:collapse; margin:0 auto; border:#C4C4C4 1px solid;">
<tr>
<td width="600" colspan="5" style=" background:#DCDBDB; border-bottom: 1px solid #C4C4C4; height: 100px;">
<img width="205" height="59" style="padding:10px 0 10px 20px;" src="http://' . $_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/images/logo.png">
</td>
</tr>
<tr>
<td colspan="2">
<p style=" background-color: #7AAAF5; color: #FFFFFF; font: bold 13px Arial,Helvetica,sans-serif; padding: 10px 0; margin:4px 0 0 0; text-align: center;">'.$heading.'</p>
</td>
</tr>
<tr>
<td colspan="2" style="padding:15px; font-family: Arial,Helvetica,sans-serif; font-size: 13px;">##EMAIL_BODY##</td>
</tr>
<tr>
<td colspan="5" style="background:#094A66;"><p style="color: #2597C9; font-family: Arial,Helvetica,sans-serif; font-size: 11px; padding: 6px 0;
text-align: center;">© 2013 <a href="http://' . $_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/" style=" color: #ffffff; font-family: Arial,Helvetica,sans-serif; font-size: 11px;
text-decoration: none;">American Business Solutions Inc</a>. All rights reserved.</p></td>
</tr>
<td width="500"></tr>
</table>
</body>
</html>';
$email_body = str_replace(array("##EMAIL_BODY##"),array($body),$content);
return $email_body;
}
//send mail on effective date and its previous date//
$currentDate = date('Y-m-d');
$timestamp = strtotime('+1 days');
$onedayAfterDate = date('Y-m-d', $timestamp);
$sql = mysql_query("SELECT staff_id FROM sat_staff_activity where effective_date = '".$onedayAfterDate."' OR effective_date = '".$currentDate."'");
while($stuffId = mysql_fetch_array($sql)){
$getStuffDetails = mysql_fetch_array(mysql_query("SELECT pemail,account_manager FROM sat_staff WHERE staff_id = '".$stuffId['staff_id']."'")); //get stuff mail and account manager
$getAccMngrMail = mysql_fetch_array(mysql_query("SELECT email FROM sat_users WHERE user_id='".$getStuffDetails['account_manager']."'")); // get accunt mngr mail
$getTemplate = check_null_value('body','sat_email_template','id','3');
$getSubject = check_null_value('subject','sat_email_template','id','3');
$templete_body = emailTempalte($getSubject,$getTemplate); // email body
$mailRecipent = array($getStuffDetails['pemail'],$getAccMngrMail['email']);
$cc= "info@absi-usa.com";
$form = 'itteam@absi-usa.com';
foreach($mailRecipent as $to){
$EndTaskMail = new Mail();
$EndTaskMail->From ($form);
$EndTaskMail->Subject ($getSubject);
$EndTaskMail->Body ($getTemplate);
$EndTaskMail->to ($to);
//$EndTaskMail->attach($stsattach);
$EndTaskMail->cc($cc);
$EndTaskMail->Send();
}
}
?>
Directory Contents
Dirs: 17 × Files: 180