How to send mail weekly once WordPress backup taken or not?
Finally I got the answer
First install the AWS S3 package refer this 'https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-examples-creating-buckets.html' Then below mentioned code create index.php file then call in browser working good
When you want to automatically run index.php file use cron
require 'vendor/autoload.php';use Aws\S3\S3Client;use Aws\Exception\AwsException;$bucketData = '{ "bucket":{ "1":{ "name":"bucketname-1", "backup":"backups/" }, "2":{ "name":"bucketname-2", "backup":"backups/" } }, "uncheck":[ "menardsimages" ]}';//multile-bucket-having-mentioned-except'uncheck'$bucketData = json_decode($bucketData);/** * List your Amazon S3 buckets. * * This code expects that you have AWS credentials set up per: * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html */$key = 'xxxxxxxxx';$secret = 'yyyyyyyy';//Create a S3Client$s3Client = new S3Client([ 'region' => 'us-west-2', 'version' => 'latest', 'credentials' => [ 'key' => $key, 'secret' => $secret, ]]);function recent_backup_verify($objects){ $tendays_bf_today = date('Y-m-d',(strtotime ( '-7 day' , strtotime ( date("Y-m-d")) ) )); foreach ($objects as $object) { $created_date = $object['LastModified']->format('Y-m-d'); if($created_date > $tendays_bf_today){ return $created_date; } } return false;}function searchForName($name, $array) { foreach ($array as $key => $val) { if ($val->name === $name) { return $val->backup; } } return null;}$buckets = $s3Client->listBuckets();//print_r($created_bucketlist);$backup_array = array();foreach ($buckets['Buckets'] as $bucket) { //files-listing-insideofthe-bucket if(!in_array($bucket['Name'], $bucketData->uncheck)){ $objects = $s3Client->getIterator('ListObjects', array( "Bucket" => $bucket['Name'], "Prefix" => searchForName($bucket['Name'], $bucketData->bucket) //must have the trailing forward slash "/" )); $getbackup_result = recent_backup_verify($objects); if($getbackup_result != false){ $backup_array[$bucket['Name']]['status'] = 'Taken'; $backup_array[$bucket['Name']]['date'] = $getbackup_result; }else{ $backup_array[$bucket['Name']]['status'] = 'Not Taken'; $backup_array[$bucket['Name']]['date'] = '-'; } }}sendgrid_form($backup_array);function sendgrid_form($backup_array){ $msg = '<table border="1" cellpadding="5" cellspacing="0" width="500px" style="border-color:#ddd;">'; $msg .= '<tr bgcolor="#555" style="color:#fff;">'; $msg .= '<th>S.No</th><th>Site Name</th><th width="100px">Backup Date</th><th width="100px">Backup Status</th>'; $msg .= '</tr>'; $s_no = 1; foreach($backup_array as $site=>$val){ if($val['status'] == 'Taken'){$color = 'green';}else{$color='red';} $msg .= '<tr>'; $msg .= '<td align="center">'.$s_no.'</td><td>'.$site.'</td><td align="center" >'.$val['date'].'</td><td align="center" style="color:'.$color.'">'.$val['status'].'</td>'; $msg .= '</tr>'; $s_no++; } $msg .= '</table>'; $message_html = "<hr width='20%' align='left'> <img src='logo.png' width='100px'> <hr width='20%' align='left'> <h3>Hi Team,</h3> <p>This is the list that has the every week backup status of our websites/applications that received in our AWS S3. If the 'Backup Status' is 'Not Taken' please check with the script/plugin immediately.</p> ".$msg." <p>Thank You</p>"; $to = 'reciever@example.com'; $json_string = array( 'to' => array($to), 'category' => 's3_backup' ); $params = array( 'api_user' => 'xxxxx', 'api_key' => 'yyyy', 'x-smtpapi' => json_encode($json_string), 'to' => $to, 'subject' => 'Backup S3 Report!', 'html' => $message_html, 'from' => 'info@example.com', ); $request = 'https://api.sendgrid.com/api/mail.send.json'; $session = curl_init($request); curl_setopt ($session, CURLOPT_POST, true); curl_setopt ($session, CURLOPT_POSTFIELDS, $params); curl_setopt($session, CURLOPT_HEADER, false); curl_setopt($session, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($session); curl_close($session); $temp = json_decode($response); if($temp->message == 'success'){ $data['success'] = "Email Send Successfully!"; }else{ $data['success'] = "Email Send Failed!"; } echo json_encode($data);}