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.