You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.2 KiB
PHP
99 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace brain\utility;
|
|
|
|
use Slim\Views\Twig;
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
use brain\data\Settings;
|
|
use brain\data\Session;
|
|
|
|
class Mailer
|
|
{
|
|
public static function sendMail($body)
|
|
{
|
|
$config = new Settings();
|
|
$settings = $config->getSettings();
|
|
$mailConfig = $settings["email"];
|
|
$mail = new PHPMailer();
|
|
|
|
switch ($body["mail_task"]) {
|
|
case "TESTING":
|
|
$html =
|
|
"<h1>Hi! It's Fipamo!</h1><br>" .
|
|
"<strong>It's just a test</strong><br>" .
|
|
$body["content"];
|
|
$member = Session::get("member");
|
|
$mail->addAddress($member["email"], ""); //pull email address from current user
|
|
$mail->Subject = "A test email";
|
|
break;
|
|
case "SEND_SECRET":
|
|
$html =
|
|
"<h1>Hi! It's Fipamo!</h1><br>" .
|
|
"<strong>This is your secret key.</strong><br><br>" .
|
|
"<h3>" .
|
|
$body["secret"] .
|
|
"</h3>" .
|
|
"<br> Use this key to reset your password.";
|
|
$mail->addAddress($body["email"], ""); //pull email address from current user
|
|
$mail->Subject = "Shhhh! It's a secret!";
|
|
break;
|
|
default:
|
|
return $result = [
|
|
"type" => "noMailService",
|
|
"message" => "Mail task is undefined. What are you doing??",
|
|
];
|
|
break;
|
|
}
|
|
|
|
//set values based on current active protocol
|
|
switch ($mailConfig["active"]) {
|
|
case "option-smtp":
|
|
$mail->setFrom($mailConfig["smtp"]["email"], "System Email");
|
|
$mail->Host = "playvicio.us";
|
|
$mail->Username = $mailConfig["smtp"]["email"];
|
|
$mail->Password = $mailConfig["smtp"]["password"];
|
|
|
|
break;
|
|
case "option-mg":
|
|
$mail->setFrom($mailConfig["mailgun"]["domain"], "No Reply");
|
|
$mail->Host = "smtp.mailgun.org";
|
|
$mail->Username = $mailConfig["mailgun"]["domain"];
|
|
$mail->Password = $mailConfig["mailgun"]["key"];
|
|
break;
|
|
default:
|
|
//no mail service
|
|
return $result = [
|
|
"type" => "noMailService",
|
|
"message" => "Mail is not configured. Handle that.",
|
|
];
|
|
break;
|
|
}
|
|
|
|
$mail->Body = $html;
|
|
$mail->IsHTML(true);
|
|
$mail->isSMTP();
|
|
$mail->SMTPAuth = true;
|
|
$mail->SMTPSecure = "ssl";
|
|
$mail->Port = 465;
|
|
|
|
// Uncomment for debug info
|
|
//$mail->SMTPDebug = 4;
|
|
|
|
/* Finally send the mail. */
|
|
try {
|
|
$mail->send();
|
|
$result = ["type" => "mailSent", "message" => "Message Away!"];
|
|
} catch (Exception $e) {
|
|
//echo $e->errorMessage();
|
|
$result = [
|
|
"type" => "mailNotSent",
|
|
"message" => "Message Not Away!",
|
|
"error" => $e->errorMessage(),
|
|
];
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
}
|