|
|
|
<?php
|
|
|
|
|
|
|
|
namespace brain\utility;
|
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|