87 строки
		
	
	
	
		
			2,6 КиБ
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			87 строки
		
	
	
	
		
			2,6 КиБ
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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; }
 | 
						|
 | 
						|
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");
 | 
						|
 |