Symfony 4 - Problem sending email after change my DNS

59 views Asked by At

Click here

1

to see my diagram app.

Hey, my client change her DNS (like that : xxx-dns.com to dns.com) and this is ok, except one problem.. In react native app, I have contact form for send message to pro "partner", and this pro partner are in the process of switching their emails from xxx-dns.com to dns.com. BUT the contact form provide by SwitchMailer doesn't work with the new DNS, I have check all configuration files, same for the server, the controller is (I think) ok.

Please help me, it's been a week

I have var_dump() all information in my controller, check api endpoint, navigate into my server and check configuration files.

This is my contact controller :


namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Twig\Environment as Twig;

class ContactController extends AbstractController
{
    /**
     * @var string
     */
    private $mailFrom;

    /**
     * @var string
     */
    private $backUrl;

    private $tokenStorage;

    public function __construct(string $mailFrom, string $backUrl, TokenStorageInterface $tokenStorage)
    {
        $this->mailFrom     = $mailFrom;
        $this->backUrl      = $backUrl;
        $this->tokenStorage = $tokenStorage;
    }

    /**
     * @Route("/contact", name="app_send_contact")
     */
    public function sendAction(\Swift_Mailer $mailer, Twig $twig, Request $request)
    {
        // Retrieve user
        $currentUser = $this->tokenStorage->getToken()->getUser();
        if (!$currentUser) {
            return $this->json(array('success' => false, 'message' => 'Utilisateur introuvable.'));
        }

        // Prepare parameters
        $contactObject  = $request->request->get('object');
        $contactMessage = $request->request->get('message');

        // Retrieve establishment
        $establishment = $currentUser->getEstablishments()->first();
        if (!$establishment) {
            return $this->json(array('success' => false, 'message' => 'Etablissement introuvable.'));
        }

        // Prepare mail
        $mailTitle = $currentUser->getFirstname() . ' ' . $currentUser->getLastname() . ' vous a envoyé un message : ' . $contactObject;

        // Send mail to establishment
        $message = (new \Swift_Message($mailTitle))
            ->setFrom($this->mailFrom)
            ->setTo($establishment->getEmail())
            ->setReplyTo($currentUser->getEmail(), $currentUser->getFirstname() . ' ' . $currentUser->getLastname())
            ->setBody(
                $twig->render(
                    'emails/contact.html.twig',
                    array(
                        'user'            => $currentUser,
                        'establishment'   => $establishment,
                        'contact_object'  => $contactObject,
                        'contact_message' => $contactMessage,
                        'back_url'        => $this->backUrl,
                    )
                ),
                'text/html'
            );
        $mailer->send($message);

        // Prepare mail
        $mailTitle = 'Confirmation de demande de contact';

        // Send mail to parent
        $message = (new \Swift_Message($mailTitle))
            ->setFrom($this->mailFrom)
            ->setTo($currentUser->getEmail())
            ->setBody(
                $twig->render(
                    'emails/contact_confirmation.html.twig',
                    array(
                        'user'            => $currentUser,
                        'establishment'   => $establishment,
                        'contact_object'  => $contactObject,
                        'contact_message' => $contactMessage,
                        'back_url'        => $this->backUrl,
                    )
                ),
                'text/html'
            );
        $mailer->send($message);

        return $this->json(array('success' => true));
    }
}```
0

There are 0 answers