E-postaları DKIM ile İmzalayın

5 yıl önce Yazan David Grudl  

DKIM (DomainKeys Identified Mail), e-postaların güvenilirliğini artıran ve aynı zamanda sahte mesajların tespit edilmesine yardımcı olan bir teknolojidir. Gönderilen mesaj, gönderenin alan adının özel anahtarıyla SMTP sunucusu tarafından imzalanır ve bu imza e-postanın başlığına kaydedilir. Alıcının sunucusu bu imzayı alan adının DNS kayıtlarında saklanan genel anahtarla karşılaştırır. İmzanın eşleşmesi, e-postanın gerçekten gönderenin alan adından geldiğini ve mesajın iletim sırasında değiştirilmediğini kanıtlar.

Nette\Mail, 3.1 sürümünden itibaren DKIM'i desteklemektedir. Kullanımı çok basittir:

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

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

Veya yapılandırma dosyasını kullanabilirsiniz:

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

Seçici, DNS kaydının bir parçası olan küçük harflerle yazılmış herhangi bir alfanümerik karakter dizisidir.

Özel ve genel anahtarlarınızı bazı çevrimiçi hizmetleri (örn. easydmarc) veya yerel olarak openssl kullanarak oluşturabilirsiniz:

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

Alan adınızın DNS'inde bir TXT kaydı oluşturarak genel anahtarı yayınlayın; adı, seçicinin, ._domainkey. karakter dizisinin ve alan adının birleşimi olacaktır. Bizim örneğimizde bu lovenette._domainkey.myweb.com olacaktır. Bazı yönetim panellerinde alan adı zaten önceden doldurulmuş olabilir.

Kaydın değeri, v=DKIM1;t=s;k=rsa;p= karakter dizisi ile dkim.pub dosyasından kopyalayacağınız genel anahtarın birleşimi olacaktır. Sarmalayan -----BEGIN PUBLIC KEY----- yorumlarını kaldırın ve satırları tek bir uzun satırda birleştirin:

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

DKIM ayarlarınızı kontrol etmek için örneğin MailTester hizmetini kullanabilirsiniz.

David Grudl An artificial intelligence and web technology specialist, creator of the Nette Framework and other popular open-source projects. He writes for Uměligence, phpFashion, and La Trine blogs. He conducts AI training workshops and hosts the Tech Guys show. He's passionate about making artificial intelligence accessible through clear, practical explanations. Creative and pragmatic, he has a keen eye for real-world technology applications.