Sign/encrypt mails with library (PHPMailer/Laminas)

I have a client which wants to use encrypted mails. They have a public/private key and it is possible to use this with PHPMailer. Unfortunately, I don’t know if it’s available out of the box with Laminas (?) in ConcreteCMS? I assume not, since I can not find any configuration in the source files nor when trying to Google for this…

If not, did anyone implement PHPMailer for ConcreteCMS instead, so I could use this and not re-invent the wheel by trying to figure out how to implement it.

Thanks a bunch!

What are you referring to with “public/private key”? Are they for GPG? For DKIM? Other…?

It’s for DKIM indeed!

DKIM is not about sending encrypted emails: it’s about sending emails that the receiver knows for sure have been sent by you and haven’t been tampered after you sent them.

Every email we send is signed with DKIM, but I configured it on the SMTP server (I did it for Sendgrid, iRedMail, Google Workspaces, MailUp).

So, I’m pretty sure that nowadays every service provider offers you such configuration.
And maybe it’s already configured: have you tried to see the headers of an email sent by your web server?

In addition to DKIM you should also check SPF and DMARC (it’s a matter of setting a couple of DNS records).

I’m not the one hosting the email and I have 0 knowledge about mail setup. I do know it’s from Outlook/Microsoft server… Not sure if that is relevant here and maybe not configurable. The one hosting the mail said explicitly there are keys available and it should be used with something like GraphAPI or something that handles the signing. Yet again, I’m not familiar with all this, so if you know more, let me know :smiley:

I’d check anyway if the sent emails are already signed with DKIM.

You can easily check DKIM/SPF/DMARC by using online tools like mail-tester.com.

What exactly would this help me? I mean, they enabled DKIM they said and it needs to be using the private keys they said. Sending the mails currently via ConcreteCMS don’t work. So if they don’t change anything within the mail, it will stay non-functional. So I’m trying to just find a way to get it to work, like PHPMailer has an option for the keys. Not sure if I misunderstood here, just say so if that’s the case!

So, your SMTP server requires that the emails you want to send are already signed with DKIM?
Usually the SMTP servers sign the emails with DKIM…

Concrete uses Laminas Mail in order to send emails, and it seems it doesn’t support DKIM signing.

I think you have to add some overrides and use something like GitHub - kynx/laminas-dkim

1 Like