Send different emails to multiple email addresses in one script

75 Views Asked by At

I have created a page that will run every 30 minutes and will send an email with meeting information to all registered attendees for events. There can be multiple events happening at the same time so, one person may receive meeting info for one event and one for another. I created this page that works when sending the emails to all attendees for one event but, if there are multiple events, it doesn't send those. Please advise how I adjust my code. Thank you.

<?php
$events = new WA_MySQLi_RS("events",$rsvp,0);
$events->setQuery("Select * from (select * from registrants) t1 left join (select *, sessionID as thesessionID from sessions where sent is NULL and start_date = CURDATE() and CURRENT_TIME() >= (start_time - INTERVAL 30 MINUTE)) t2 on (t1.sessionID = t2.sessionID) left join (select *, eventID as theeventID from events) t3 on (t3.eventID = t2.eventID) left join (select * from parents) t4 on (t4.parentID= t1.parentID) left join (select * from zoom_google_meet) t5 on (t5.sessionID = t2.sessionID) left join (select * from events) t6 on (t6.eventID = t2.eventID) where virtual_inperson = 'Virtual' group by t1.registerID order by parent_lname");
$events->execute();
$notice_url1 = 'https://zoom.us/join';
$notice_url2 = 'https://meet.google.com/';
$start_date = date("m/d/Y", strtotime($events->getColumnVal("start_date")));
  $start_time = date("h:i a", strtotime($events->getColumnVal("start_time")));
  $title = $events->getColumnVal("title");
  $web_url = $events->getColumnVal("web_url");
  $sessionID = $events->getColumnVal("thesessionID");
  $registerID = $events->getColumnVal("registerID");
  $password = $events->getColumnVal("password");
  $meetingID = $events->getColumnVal("meetingID");

?>
<?php
if ($events->TotalRows > 0) {
for($i=0;$i<count($registerID);$i++){
 $emails = [];

 
while(!$events->atEnd()) {
  // So we have the two values we care about.
  $email = $events->getColumnVal("parent_email");

  
  // So we only attempt to email users that actually have email addresses.
  if(0 < strlen($email)) {
    array_push($emails, $email);
  }
  
  $events->moveNext();
}
 if(0 < count($emails)) { 
 
 $email_address =  implode(",",$emails);
$message = "Thank you for signing up to attend $title on $start_date at $start_time. To login to the meeting, please use the following information:\r\n \r\n $notice_url1 or $zoomI_url \r\n Meeting ID: $meetingID \r\n Password: $password \r\n \r\n Reminder: You must login to the meeting using the same name you registered with or you won't be allowed into the meeting. \r\n";
$message=wordwrap($message);
$to = '';
$subject = "$title Login Instructions | $start_date";
$headers = "From: [email protected]\r\n";
$headers .= "Bcc: $email_address\r\n";
mail ($to, $subject, $message, $headers) or print "Error: Unable to send an email message to $email_address.";}
}}
?>

0

There are 0 best solutions below