Firmar correos electrónicos usando DKIM
DKIM (DomainKeys Identified Mail) es una tecnología para aumentar la confiabilidad de los correos electrónicos, que también ayuda a detectar mensajes falsificados. El mensaje enviado es firmado por el servidor SMTP con la clave privada del dominio del remitente y esta firma se almacena en la cabecera del correo electrónico. El servidor del destinatario compara esta firma con la clave pública almacenada en los registros DNS del dominio. Si la firma coincide, se demuestra que el correo electrónico proviene realmente del dominio del remitente y que el mensaje no ha sido modificado durante la transferencia.

Nette\Mail soporta DKIM desde la versión 3.1. Su uso es muy sencillo:
$options = [
'domain' => 'myweb.com',
'selector' => 'lovenette',
'privateKey' => file_get_contents('dkim.priv'),
// 'passPhrase' => '****',
'testMode' => true,
];
$mailer = new Nette\Mail\SendmailMailer; // o SmtpMailer
$mailer->setSigner(new Nette\Mail\DkimSigner($options));
$mailer->send($mail);
O puede utilizar un archivo de configuración:
mail:
dkim:
domain: myweb.com
selector: lovenette
privateKey: %appDir%/cert/dkim.priv
passPhrase: ...
testMode: ...
El selector es cualquier cadena alfanumérica en minúsculas que forma parte del registro DNS.
Puede generar la clave privada y pública utilizando alguno de los servicios en línea (por ejemplo, easydmarc) o localmente mediante openssl:
openssl genrsa -out dkim.priv 1024
openssl rsa -in dkim.priv -pubout > dkim.pub
Publique la clave pública creando un registro TXT en el DNS de su dominio,
cuyo nombre será una combinación del selector, la cadena
._domainkey.
y el dominio. En nuestro ejemplo, sería
lovenette._domainkey.myweb.com
. En algunas administraciones, el
dominio ya viene prerellenado.
El valor del registro será la concatenación de la cadena
v=DKIM1;t=s;k=rsa;p=
y la clave pública, que copie del archivo
dkim.pub
. Elimine los comentarios envolventes
-----BEGIN PUBLIC KEY-----
y una las líneas en una
sola larga:
v=DKIM1;t=s;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDi5y95Mi8FZ8LOSmi7nA/EFhn4a4/Zq3BnnmPFdu1IvduDwMGRrRW5V9FKjXvr4AnUq7eMLRtEdWYRpR9BXLdCWiJ2N4yKJG7SEEir8DMYOGGeqJZoR/kWFiG++GW++sdhfukFflPusJjrWr+4Pc4/qxMSrqUk/rVdsSlTDDRy/QIDAQAB
Para verificar la configuración de DKIM, puede utilizar, por ejemplo, el servicio MailTester.
Para enviar un comentario, inicie sesión