Friday, 6 December 2013

E-Mail Attachments With PHP's mail() Function

Below is a full working example of how to include one or more attachments to an outbound e-mail utilizing PHP's mail() function. Usage Example


<?php
$to = 'test@example.com';
$from = 'source@example.com';
$subject = 'See Attachments';
$message = 'Please review the following attachments.';

// Define a list of FILES to send along with the e-mail. Key = File to be sent. Value = Name of file as seen in the e-mail.
$attachments = array(
 '/tmp/WEDFRTS' => 'first-attachment.png',
 '/tmp/some-other-file' => 'second-attachment.png'
);

// Define any additional headers you may want to include
$headers = array(
 'Reply-to' => 'source@example.com',
 'Some-Other-Header-Name' => 'Header Value'
);

$status = mailAttachments($to, $from, $subject, $message, $attachments, $headers);
if($status === True) {
 print 'Successfully mailed!';
} else {
 print 'Unable to send e-mail.';
}


<?php
function mailAttachments($to, $from, $subject, $message, $attachments = array(), $headers = array(), $additional_parameters = '') {
 $headers['From'] = $from;

 // Define the boundray we're going to use to separate our data with.
 $mime_boundary = '==MIME_BOUNDARY_' . md5(time());

 // Define attachment-specific headers
 $headers['MIME-Version'] = '1.0';
 $headers['Content-Type'] = 'multipart/mixed; boundary="' . $mime_boundary . '"';

 // Convert the array of header data into a single string.
 $headers_string = '';
 foreach($headers as $header_name => $header_value) {
  if(!empty($headers_string)) {
   $headers_string .= "\r\n";
  }
  $headers_string .= $header_name . ': ' . $header_value;
 }

 // Message Body
 $message_string  = '--' . $mime_boundary;
 $message_string .= "\r\n";
 $message_string .= 'Content-Type: text/plain; charset="iso-8859-1"';
 $message_string .= "\r\n";
 $message_string .= 'Content-Transfer-Encoding: 7bit';
 $message_string .= "\r\n";
 $message_string .= "\r\n";
 $message_string .= $message;
 $message_string .= "\r\n";
 $message_string .= "\r\n";

 // Add attachments to message body
 foreach($attachments as $local_filename => $attachment_filename) {
  if(is_file($local_filename)) {
   $message_string .= '--' . $mime_boundary;
   $message_string .= "\r\n";
   $message_string .= 'Content-Type: application/octet-stream; name="' . $attachment_filename . '"';
   $message_string .= "\r\n";
   $message_string .= 'Content-Description: ' . $attachment_filename;
   $message_string .= "\r\n";

   $fp = @fopen($local_filename, 'rb'); // Create pointer to file
   $file_size = filesize($local_filename); // Read size of file
   $data = @fread($fp, $file_size); // Read file contents
   $data = chunk_split(base64_encode($data)); // Encode file contents for plain text sending

   $message_string .= 'Content-Disposition: attachment; filename="' . $attachment_filename . '"; size=' . $file_size.  ';';
   $message_string .= "\r\n";
   $message_string .= 'Content-Transfer-Encoding: base64';
   $message_string .= "\r\n\r\n";
   $message_string .= $data;
   $message_string .= "\r\n\r\n";
  }
 }

 // Signal end of message
 $message_string .= '--' . $mime_boundary . '--';

 // Send the e-mail.
 return mail($to, $subject, $message_string, $headers_string, $additional_parameters);
}

Monday, 4 November 2013

PHP Date difference between two dates


 


$dStart = new DateTime('2013-11-26');
 $dEnd  = new DateTime(date('Y-m-d'));
 $dDiff = $dStart->diff($dEnd);
//Date difference in days
  $date_diff_days    =     $dDiff->days;
             
    Another Method
        
$now = time();    
$your_date = strtotime('2013-11-26');
$datediff = $now - $your_date;
$date_diff_daysfloor($datediff/(60*60*24));

Tuesday, 1 October 2013

create the frontend application in symfony

 create the frontend application by running the generate:app task: $ php symfony generate:app frontend

PHP Script to Send Email Using SMTP Authentication and SSL Encryption

<?php
 require_once "Mail.php";
 
 $from = "Susan Sender <sender@example.com>";
 $to = "Rachel Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";
 
 $host = "ssl://smtpcorp.com"; 
// Enter 'ssl://' and your SMTP2GO account's SMTP server.
$port = "465";
// 8465 can also be used.
$username = "smtp_username"; $password = "smtp_password"; $headers = array ('From' => $from,   'To' => $to,   'Subject' => $subject); $smtp = Mail::factory('smtp',   array ('host' => $host,     'port' => $port,     'auth' => true,     'username' => $username,     'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) {   echo("<p>" . $mail->getMessage() . "</p>");  } else {   echo("<p>Message successfully sent!</p>");  } ?>

PHP Script to Send Email Using SMTP Authentication

<?php
 require_once "Mail.php";
 
 $from = "Susan Sender <sender@example.com>";
 $to = "Rachel Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";
 
 $host = "smtpcorp.com"; 
// Enter your SMTP2GO account's SMTP server.
$port = "2525";
// 8025, 587 and 25 can also be used.
$username = "smtp_username"; $password = "smtp_password"; $headers = array ('From' => $from,   'To' => $to,   'Subject' => $subject); $smtp = Mail::factory('smtp',   array ('host' => $host,     'auth' => true,     'username' => $username,     'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) {   echo("<p>" . $mail->getMessage() . "</p>");  } else {   echo("<p>Message successfully sent!</p>");  } ?>