Ik gebruik het onderstaande script om automatisch wanneer er een wijziging is een mail te sturen via outlook. Nu is het enige probleem dat hij per wijziging een aparte mail stuurt terwijl als ik meerdere wijzigingen uitvoor hij deze in een mail moet zetten. Iemand die mij daarbij kan helpen?
<?php
if (session_id() === "") {
session_start();
}
setlocale(LC_ALL, "nl_NL.UTF-8");
include '../../includes/authorize.php';
include '../resources/database/MysqliDb.php';
$db = new MysqliDb ($server, $user, $password, $database);
include '../../includes/authorize.php';
if (!empty($_POST)) {
sendMails($_POST['changes']);
}
/**
* @param $data array of users with the changes made that affect them
*
* @return array
*/
function sendMails($data)
{
if (isset($_GET['showAs'])) {
$showAs = $_GET['showAs'];
} else {
$showAs = "BUSY";
}
try {
foreach ($data as $user) {
$to = $user['info']['naam'] . " <" . $user['info']['email'] . ">";
if ($user['info']['email'] == $_POST['organizer']['email']) {
$organizer = "Wijzigingsbeheer";
$organizer_email = "[email protected]";
} else {
$organizer = $_POST['organizer']['naam'];
$organizer_email = $_POST['organizer']['email'];
}-
$participant_name = $user['info']['naam'];
$participant_email = $user['info']['email'];
foreach ($user['changes'] as $change) {
$date = date("Ymd", strtotime($change['date']));
if ($change['daypart'] == 0) {
$startTime = '0830';
$endTime = '1230';
} else {
$startTime = '1300';
$endTime = '1700';
}
$subject = $_POST['newTask']['name'];
$desc = 'Veranderingen in het planbord';
$headers = "Content-type: text/calendar; Content-Disposition: inline; charset=utf-8; filename=calendar.ics;";
// $headers .= "Content-Type: text/plain;charset=\"utf-8\"";
$UniqueID = time() + rand(0, 100);
$message =
"BEGIN:VCALENDAR\r\n"
. "PRODID:-//Planbord\r\n"
. "VERSION:2.0\r\n"
. "METHOD:REQUEST\r\n"
. "BEGIN:VEVENT\r\n"
. "DTSTAMP:" . date('Ymd') . 'T' . date('His') . "\r\n"
. "DTSTART:" . $date . "T" . $startTime . "00\r\n"
. "ORGANIZER;CN=" . $organizer . ":mailto:" . $organizer_email . "\r\n"
. "SUMMARY:" . $subject . "\r\n"
. "UID: " . $UniqueID . "\r\n"
. "DTEND:" . $date . "T" . $endTime . "00\r\n"
. "LOCATION: Uw werkplek \r\n"
. "DESCRIPTION:" . $desc . "\r\n"
. "ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=" . $participant_name . " :MAILTO:" . $participant_email . "\r\n"
. "X-MICROSOFT-CDO-BUSYSTATUS:" . $showAs . "\r\n"
. "END:VEVENT\r\n"
. "END:VCALENDAR";
$headers .= $message;
mail($to, $subject, $message, $headers);
}
}
} catch (Exception $ex) {
$return['code'] = 500;
$return['message'] = "Er is iets mis gegaan met het versturen van de mails, deze foutmelding kan helpen met het oplossen: " . $ex;
return;
}
$return['code'] = 200;
$return['message'] = "De mails zijn verzonden.";
return;
}
1.424 views