Jimmy Monin 57708e3169 Initial commit
Functional, without SSO
2016-09-18 11:03:26 +02:00

76 lines
2.6 KiB
PHP

<?php
$errors = array();
$options = array(
"host" => "", "port" => "",
"username" => "", "password" => "",
"secure" => "",
"from" => "",
"testMail" => ""
);
if ($config->hasSection("mailer")) {
if ($smtp = $config->get("mailer", "smtp", array())) {
$options = array_merge($options, $smtp);
}
if ($from = $config->get("mailer", "from", null)) {
$options["from"] = $from;
}
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$options = array_merge($options, array_map("trim", $_POST));
if (isset($_POST["testSMTP"])) {
require_once "PHPMailer/class.phpmailer.php";
$mailer = new PHPMailer($exceptions=true);
$mailer->setLanguage("fr", DOCUMENT_ROOT."/lib/PHPMailer/language/");
$mailer->CharSet = "utf-8";
if (!empty($options["host"])) {
$mailer->Host = $options["host"];
$mailer->isSMTP();
}
if (!empty($options["port"])) {
$mailer->Port = $options["port"];
$mailer->isSMTP();
}
if (!empty($options["username"])) {
$mailer->SMTPAuth = true;
$mailer->Username = $options["username"];
}
if (!empty($options["password"])) {
$mailer->SMTPAuth = true;
$mailer->Password = $options["password"];
}
if (!empty($options["secure"])) {
$mailer->SMTPSecure = $options["secure"];
}
if (!empty($options["from"])) {
$mailer->Sender = $options["from"];
$mailer->From = $options["from"];
}
if (empty($_POST["testMail"])) {
$errors["testMail"] = "Indiquez une adresse e-mail pour l'envoi du test.";
} else {
$mailer->clearAddresses();
$mailer->addAddress($_POST["testMail"]);
if ($options["from"]) {
$mailer->FromName = $options["from"];
}
$mailer->Subject = "Test d'envoi de mail";
$mailer->Body = "Bravo.\nVotre configuration mail est validée.";
try {
$mailer->send();
$testSended = true;
} catch (phpmailerException $e) {
$testError = $e->getMessage();
}
}
} else {
$config->set("mailer", "smtp", array(
"host" => $options["host"], "port" => $options["port"],
"username" => $options["username"], "password" => $options["password"],
"secure" => $options["secure"]
));
$config->set("mailer", "from", $options["from"]);
$config->save();
header("LOCATION: ?mod=admin&a=mail");
exit;
}
}