58 lines
2.2 KiB
PHP
58 lines
2.2 KiB
PHP
<?php
|
|
namespace App\Controller;
|
|
|
|
use App\Form\AnonymousComplaintType;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\Routing\Annotation\Route;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\Yaml\Yaml;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use jv\intranet\Types\NavbarItem;
|
|
use Psr\Log\LoggerInterface;
|
|
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
|
|
use Symfony\Component\Mailer\TransportInterface;
|
|
use Symfony\Component\Mailer\MailerInterface;
|
|
use Symfony\Component\Mailer\Transport\TransportInterface as TransportTransportInterface;
|
|
use Symfony\Component\Mime\Email;
|
|
use Symfony\Component\Mime\Address;
|
|
|
|
class ComplaintController extends AbstractController
|
|
{
|
|
#[Route('/complaint/anon', name: 'complaint')]
|
|
public function Index(Request $request, TransportTransportInterface $mailer,LoggerInterface $log, NavbarController $_navbar) : Response
|
|
{
|
|
$form = $this->createForm(AnonymousComplaintType::class);
|
|
$form->handleRequest($request);
|
|
|
|
if($form->isSubmitted())
|
|
{
|
|
$message = $form->get('Message')->getData();
|
|
$sendMail = $this->sendEmail($mailer, $message, $log);
|
|
}
|
|
else
|
|
{
|
|
$sendMail = null;
|
|
}
|
|
return new Response($_navbar->navbar() . $this->renderView('complaint.html.twig',['form' => $form, 'isSubmitted' => $sendMail, 'complaintReceiverName' => $_SERVER['COMPLAINT_RECIPIENT_NAME']]));
|
|
}
|
|
public function sendEmail(TransportTransportInterface $mailer, string $message, LoggerInterface $log) : bool
|
|
{
|
|
$email = (new Email())
|
|
->from(new Address('noreply@jv.com', 'Anonymous'))
|
|
->to($_SERVER['COMPLAINT_RECIPIENT_ADDRESS'])
|
|
->subject('Anonymous Contact Form')
|
|
->text($message);
|
|
$email->getHeaders()->addTextHeader('X-Auto-Response-Suppress', 'OOF, DR, RN, NRN, AutoReply'); //Tell autoresponders to not reply
|
|
try
|
|
{
|
|
$log->debug($mailer->send($email)->toString());
|
|
return true;
|
|
}
|
|
catch (TransportExceptionInterface $e)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
|
|
}
|
|
} |