3

I never ask questions here usually but I'm stuck right now.

I've just upgraded my Symfony projet from 5.0 to 5.2 because I needed to DKIM sign my emails and there is a new feature to sign emails with Symfony Mailer on 5.2 : https://symfony.com/blog/new-in-symfony-5-2-dkim-email-authentication

I can't find any support on this so I hope someone had the same problem as me.

I basically followed documentation by implementing my signature on my mail like that :

$email = (new TemplatedEmail())
         ->from(new Address('noreply@domain.com', 'Noreply'))
         ->to($userEmail)
         ->subject('Subject')
         ->text('My email text format')
         ->htmlTemplate('email.html.twig')
         ->context([
            ...
         ]);

$signer = new DkimSigner(
            'file://'.dirname(__DIR__).'/../'.$this->getParameter('private_key_filename'),
            $this->getParameter('domain_name'),
            $this->getParameter('selector')
        );
$signedEmail = $signer->sign($email);

$mailer->send($signedEmail);

I also tried getting content :

$signer = new DkimSigner(
                file_get_contents(dirname(__DIR__).'/../'.$this->getParameter('private_key_filename')),
                $this->getParameter('domain_name'),
                $this->getParameter('selector')
            );

I still have "body has been altered" when using multiple DKIM lookup and the test fail.

I don't think there is a problem in charging the private key file because I first had those kind of errors that I fixed by adding the "/../" on the path.

I've set the public key on my DNS with TXT record and domain selector._domainkey.domain.com like that :

v=DKIM1;k=rsa;p=mypublickey

I don't think this is a problem of key integrity because I used openssl to generate the private and public keys :

openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key

And I can't sign my email by using my SMTP server because I'm having a mutualized offer and I can't change server configurations.

Thank you for your time and I hope someone had the same problem !

UPDATE (07/12) :

Even after trying to put the private key as text on a variable like in the DkimSignerTest.php test file of the commit (https://github.com/symfony/symfony/pull/37165/files), it is not working :

$pk = <<<EOF
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
EOF;

UPDATE (08/12) :

I opened an issue on Symfony repo : https://github.com/symfony/symfony/issues/39354

Zerrrr
  • 31
  • 4

0 Answers0