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

преди 5 години от 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; // или 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 записа.

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

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

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

Стойността на записа ще бъде комбинация от низа 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

За да проверите настройките на DKIM, можете да използвате например услугата на MailTester.

David Grudl Open-source creator and AI specialist who opens doors to the world of artificial intelligence. His projects including Nette and Texy! power websites you visit daily. He contributes to Uměligence and La Trine while hosting Tech Guys. Through AI workshops, he champions technology that genuinely improves people's lives.

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