Подписване на имейли с DKIM

преди 4 години От David Grudl  

DKIM (DomainKeys Identified Mail) е надеждна технология за електронна поща, която помага и за откриване на подправени съобщения. Изпратеното съобщение се подписва от SMTP сървъра с частния ключ на домейна на изпращача и този подпис се съхранява в заглавието на електронното съобщение. Сървърът на получателя сравнява този подпис с публичния ключ, съхранен в DNS записите на домейна. Чрез сравняване на подписа се доказва, че електронното писмо действително произхожда от домейна на изпращача и че съобщението не е било модифицирано по време на предаването му.

Nette\Mail поддържа DKIM от версия 3.1. Използването е много просто:

$options = [
	'domain' => 'myweb.com',
	'selector' => 'lovenette',
	'privateKey' => file_get_contents('dkim.priv'),
//	'passPhrase' => '****',
	'testMode' => true,
];

$mailer = new Nette\Mail\SendmailMailer; // or SmtpMailer
$mailer->setSigner(new Nette\Mail\DkimSigner($options));
$mailer->send($mail);

Или можете да използвате конфигурационния файл:

mail:
	dkim:
		domain: myweb.com
	    selector: lovenette
	    privateKey: %appDir%/cert/dkim.priv
	    passPhrase: ...
	    testMode: ...

Селекторът е всеки буквено-цифров низ с малки букви, който е част от DNS записа.

Можете да генерирате двойка частен и публичен ключ с помощта на openssl:

openssl genrsa -out dkim.priv 1024
openssl rsa -in dkim.priv -pubout > dkim.pub

Публикувате публичния ключ, като създавате TXT запис в DNS за името на хоста, създадено чрез конкатенация на селектора, буквалния низ ._domainkey. и името на домейна. В нашия пример това ще бъде lovenette._domainkey.myweb.com. В някои администрации домейнът вече е предварително попълнен.

Стойността на TXT записа може да бъде създадена чрез конкатенация на буквалния низ v=DKIM1;t=s;k=rsa;p= и публичния ключ, който копирате от файла dkim.pub. Премахнете околните редове на -----BEGIN PUBLIC KEY----- и увийте ключа в един дълъг ред:

v=DKIM1;t=s;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDi5y95Mi8FZ8LOSmi7nA/EFhn4a4/Zq3BnnmPFdu1IvduDwMGRrRW5V9FKjXvr4AnUq7eMLRtEdWYRpR9BXLdCWiJ2N4yKJG7SEEir8DMYOGGeqJZoR/kWFiG++GW++sdhfukFflPusJjrWr+4Pc4/qxMSrqUk/rVdsSlTDDRy/QIDAQAB

Можете да използвате услугата "MailTester:https://www.mail-tester.com/spf-dkim-check ", за да проверите настройките си за DKIM.

Последни публикации