|
- <?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");
|