<?php require_once ("config.php"); require_once "resources/PHPMailer/class.phpmailer.php"; require_once "book.php"; function checkConfiguration () { global $config; if (is_null ($config['cops_mail_configuration']) || !is_array ($config['cops_mail_configuration']) || empty ($config['cops_mail_configuration']["smtp.host"]) || empty ($config['cops_mail_configuration']["address.from"])) { return "NOK. bad configuration."; } return False; } function checkRequest ($idData, $emailDest) { if (empty ($idData)) { return 'No data sent.'; } if (empty ($emailDest)) { return 'No email sent.'; } return False; } if (php_sapi_name() === 'cli') { return; } global $config; if ($error = checkConfiguration ()) { echo $error; exit; } $idData = $_REQUEST["data"]; $emailDest = $_REQUEST["email"]; if ($error = checkRequest ($idData, $emailDest)) { echo $error; exit; } $book = Book::getBookByDataId($idData); $data = $book->getDataById ($idData); if (filesize ($data->getLocalPath ()) > 10 * 1024 * 1024) { echo 'Attachment too big'; exit; } $mail = new PHPMailer; $mail->IsSMTP(); $mail->Timeout = 30; // 30 seconds as some files can be big $mail->Host = $config['cops_mail_configuration']["smtp.host"]; if (!empty ($config['cops_mail_configuration']["smtp.secure"])) { $mail->SMTPSecure = $config['cops_mail_configuration']["smtp.secure"]; $mail->Port = 465; } $mail->SMTPAuth = !empty ($config['cops_mail_configuration']["smtp.username"]); if (!empty ($config['cops_mail_configuration']["smtp.username"])) $mail->Username = $config['cops_mail_configuration']["smtp.username"]; if (!empty ($config['cops_mail_configuration']["smtp.password"])) $mail->Password = $config['cops_mail_configuration']["smtp.password"]; if (!empty ($config['cops_mail_configuration']["smtp.secure"])) $mail->SMTPSecure = $config['cops_mail_configuration']["smtp.secure"]; $mail->From = $config['cops_mail_configuration']["address.from"]; $mail->FromName = $config['cops_title_default']; foreach (explode (";", $emailDest) as $emailAddress) { if (empty ($emailAddress)) { continue; } $mail->AddAddress($emailAddress); } $mail->AddAttachment($data->getLocalPath ()); $mail->IsHTML(true); $mail->Subject = 'Sent by COPS : ' . $data->getUpdatedFilename (); $mail->Body = "<h1>" . $book->title . "</h1><h2>" . $book->getAuthorsName () . "</h2>" . $book->getComment (); $mail->AltBody = "Sent by COPS"; if (!$mail->Send()) { echo localize ("mail.messagenotsent"); echo 'Mailer Error: ' . $mail->ErrorInfo; exit; } echo localize ("mail.messagesent");