59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Api;
|
|
use Api\Parameter\Parameter;
|
|
use Api\Parameter\StringType;
|
|
|
|
class SendMail extends Request {
|
|
|
|
public function __construct($user, $externCall = false) {
|
|
parent::__construct($user, $externCall, array(
|
|
'from' => new Parameter('from', Parameter::TYPE_EMAIL),
|
|
'to' => new Parameter('to', Parameter::TYPE_EMAIL),
|
|
'subject' => new StringType('subject', -1),
|
|
'body' => new StringType('body', -1),
|
|
'fromName' => new StringType('fromName', -1, true, ''),
|
|
'replyTo' => new Parameter('to', Parameter::TYPE_EMAIL, true, ''),
|
|
));
|
|
$this->isPublic = false;
|
|
}
|
|
|
|
public function execute($values = array()) {
|
|
if(!parent::execute($values)) {
|
|
return false;
|
|
}
|
|
|
|
$mailData = getMailData();
|
|
$mail = new \External\PHPMailer\PHPMailer;
|
|
$mail->IsSMTP();
|
|
$mail->setFrom($this->getParam('from'), $this->getParam('fromName'));
|
|
$mail->addAddress($this->getParam('to'));
|
|
$mail->Subject = $this->getParam('subject');
|
|
$mail->SMTPDebug = 0;
|
|
$mail->Host = $mailData->getHost();
|
|
$mail->Port = $mailData->getPort();
|
|
$mail->SMTPAuth = true;
|
|
$mail->Username = $mailData->getLogin();
|
|
$mail->Password = $mailData->getPassword();
|
|
$mail->SMTPSecure = 'tls';
|
|
$mail->IsHTML(true);
|
|
$mail->CharSet = 'UTF-8';
|
|
$mail->Body = $this->getParam('body');
|
|
|
|
$replyTo = $this->getParam('replyTo');
|
|
if(!is_null($replyTo) && !empty($replyTo)) {
|
|
$mail->AddReplyTo($replyTo, $this->getParam('fromName'));
|
|
}
|
|
|
|
$this->success = @$mail->Send();
|
|
if (!$this->success) {
|
|
$this->lastError = 'Error sending Mail: ' . $mail->ErrorInfo;
|
|
error_log("sendMail() failed: " . $mail->ErrorInfo);
|
|
}
|
|
|
|
return $this->success;
|
|
}
|
|
};
|
|
|
|
?>
|