user email * name => user full name * subject => subject * body => email message body * ] * * then send the email; * * @param $activator (array): [ * email => user email, * name => user full name, * code => activation code * ] * * @return success_starus (boolean) * * TODO: * check for email templating: * + https://stackoverflow.com/questions/2391171/how-to-get-output-from-local-script-in-php * + https://stackoverflow.com/questions/171318/how-do-i-capture-php-output-into-a-variable */ public static function send_invitation($memo) { $invitation = SITE_URL ."/invitation/". $memo['code']; $envelope = [ 'email' => $memo['email'], 'name' => $memo['name'], 'subject' => 'Πρόσκληση από το 1ο Γυμνάσιο Ραφήνας', 'body' => "Χαίρετε,
Στο παρόν email θα βρείτε πληροφορίες για να ενεργοποιήσετε την πρόσβασή σας στην Πλατφόρμα ηλεκτρονικών αιτήσεων και δημιουργίας διαδικαστικών εγγράφων του 1ου Γυμνάσιου Ραφήνας.

Όνομα επαφής: ". $memo['name'] ."
Email : ". $memo['email'] ."

Για να ενεργοποιήσετε την πρόσβασή σας στο site θα πρέπει να ακολουθήσετε τον παρακάτω σύνδεσμο: ". $invitation .".

Μετά την ενεργοποίηση θα έχετε πρόσβαση στο περιεχόμενο του site.
Μην απαντήσετε στο email, δεν υπάρχει φυσική επαφή η οποία να λαμβάνει τυχόν replies." ]; switch (DEFAULT_MAIL_SERVICE) { case 'mailjet': $reply = self::send_mailjet($envelope); break; case 'phpMailer': $reply = self::send_phpMailer($envelope); break; } return $reply; } /** send phpMailer * * send email using phpMailer class; * optional SMTP server configuration; * * @param array $envelope: array with [ email, name, subject, body ] keys * @return boolean success_starus */ public static function send_phpMailer($envelope) { $mail = new PHPMailer(); # // setup smpt $mail->SMTPDebug = 3; $mail->IsSMTP(); $mail->Host = MAIL_HOST; # $mail->SMPTAuth = false; $mail->SMTPSecure = MAIL_ENCRYPTION; # // $mail->Protocol = 'mail'; $mail->Mailer = MAIL_MAILER; $mail->Port = MAIL_PORT; $mail->Username = MAIL_USERNAME; $mail->Password = MAIL_PASSWORD; // setup format $mail->CharSet = 'utf-8'; $mail->IsHTML(true); // setup THE mail // --- -- -- - - - // It's important not to use the submitter's address as the from address // as it's forgery, which will cause your messages to fail SPF checks. // Use an address in your own domain as the from address; // put the submitter's address in a reply-to $mail->setFrom(NO_REPLY_EMAIL, MAIL_FROM_NAME); $mail->addAddress($envelope['email'], $envelope['name']); $mail->addReplyTo(REPLY_TO_EMAIL, MAIL_FROM_NAME); $mail->Subject = $envelope['subject']; $mail->Body = $envelope['body']; return (!$mail->send()) ? false : true; } /** send_mailjet * * send email using CURL mail-relay of Mailjet * * @param $envelope * @return success_starus (boolean) */ public static function send_mailjet($envelope) { $body = [ 'Messages' => [ [ 'From' => [ 'Email' => REPLY_TO_EMAIL, 'Name' => MAIL_FROM_NAME ], 'To' => [ [ 'Email' => $envelope['email'], 'Name' => $envelope['name'] ] ], 'Subject' => $envelope['subject'], 'HTMLPart' => $envelope['body'] ] ] ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.mailjet.com/v3.1/send"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json') ); curl_setopt( $ch, CURLOPT_USERPWD, MAILJET_APIKEY. ':'. MAILJET_SECRET ); $server_output = curl_exec($ch); curl_close ($ch); $response = json_decode($server_output); return ($response->Messages[0]->Status == 'success') ? true : $response; } } /** NOTE: * ----------------------------------------------------------------------------- * (brainstorming) * Optimization per concept alternative technologies --- -- -- - - - ## Session File Session Database Session Redis Session Memcached Session --- ## Cache File Cache Database Cache Redis Cache Memcashed Cache --- ## Log File Log Database Log Log event to Slack Log event to Email * ----------------------------------------------------------------------------- */