📧

CentOS Postfix: DKIM設定でのメール配信遅延を解消する方法

2024/02/05に公開

どもども、かずおです。
CentOSのPostfixでDKIMを設定する際のメール配信遅延に対処する方法を共有します。

要約

  • メール送信にはSPF、DNS、DKIM、DMARCの設定が必要。
  • PostfixにOpenDKIMの処理でメール送信が遅くなることがある。
  • 対策:Node.jsを使用したメール送信プログラム側でDKIM認証を追加。

はじめに

Googleのメール送信者のガイドライン変更により、迷惑メール判定されないようにするためには、SPF、DNS、DKIM、DMARCの設定が必要になりました。
弊社では会員様にメール配信をしていますが、一部のメール配信システムがDKIMの設定をしていないため、PostfixにOpenDKIMを設定したのですが、メール送信スピードが1.5~2倍遅延する現象が発生しました。
メール送信スピードを向上させるために、以下の対策を実施しました。

対策. メール送信プログラム側でDKIM認証(Node.js)

Node.jsのNodemailerを使用している場合、メール送信プログラムにDKIM認証を追加します。

var createSMTPServer = function() {
  let transporter = nodemailer.createTransport({
    host: "localhost",
    // DKIM認証の追加
    dkim: {
      domainName: "署名に使用されるドメイン名",
      keySelector: "キーセレクター",
      privateKey: fs.readFileSync("DKIMの秘密鍵ファイル")
    }
  });
  return transporter;
};
  • domainName:署名に使用されるドメイン名
  • keySelector:キーセレクター。例: zzz._domainkey.example.comで DKIM 公開キーを使用して TXT レコードを設定した場合は、zzzセレクターになります。
  • privateKey:署名に文字列として使用されるDKIMの秘密鍵ファイル

引用元:Nodemailer 公式ドキュメント

最後に

この対策を実施することで、CentOSのPostfixでDKIMを設定した際のメール配信遅延に効果的に対処できました。
対策の結果は以下の通りです。

  • 対策:メール送信プログラム側でDKIM認証(Node.js)
    • DKIM設定前と同等の配信スピードを維持

上記の対策以外にも、DKIMを設定した際のメール配信遅延に対処する方法が存在しますが、今回試した手法を共有いたします。

CareNet Engineers

Discussion