1

さまざまなサイトに多数のサブドメインを持つ単一のドメインがあります。それぞれがApacheに個別の仮想ホストを持っています。

メールが常にサブドメインではなくトップレベル ドメインから送信されるように、sendmail をトップレベル ドメインとしてマスカレードするように構成しました。

残念ながら、DKIM ヘッダーの d= および i= フィールドにはサブドメインが表示されます。DNS レコードは最上位ドメインに保存されるため、DKIM チェックは失敗します。

トップレベル ドメインを使用するように DKIM に指示するにはどうすればよいですか?

ヘルプ?- ジム

psこれについてあらゆる角度から試してみましたが、困惑しています。Sendmail がどのサブドメインを使用するかを DKIM に伝える方法がわかりません。また、使用されているサブドメインを PHP が Sendmail に通知する方法がわかりません。メールを送信する直前に $_SERVER['SERVER_NAME'] を設定してオーバーライドしようとしましたが、効果がありません。私は単一の回避策を理解できません。

4

1 に答える 1

1

この問題は、ヘッダーの書き換えに起因し、ここで説明されています: https://serverfault.com/questions/442180/sendmail-rewriting-headers-after-opendkim-signature

推奨される解決策の 1 つは、PHP で正しいヘッダーを設定することです。これにより、sendmail に正しいドメイン情報が与えられ、書き換えが必要なくなります。

私の場合、簡単な修正として $_SERVER['SERVER_NAME'] を設定するのが正しいことを意味することに気付きました。Sendmailが値を無視していると思ったので、私にはうまくいかないと言いました。しかし、もう一度試してみたところ、Sendmail が $_SERVER['SERVER_NAME'] の値を認識していることに気付きました。以前は気づかなかった問題は、DKIM フィルターが正しく構成されていなかったことです。

dkim-filter.conf には、Domain *.mydomain.com という行がありました。

Sendmail がヘッダー情報で「mydomain.com」を受信して​​ DKIM-Milter を呼び出したとき、「mydomain.com」は明らかに *.mydomain.com と一致しないため、DKIM は一致を見つけることができませんでした。*.mydomain.com を mydomain.com に変更すると、すべてが機能し始めました。

したがって、すべてのサイトで行う必要があるのは、mail() または wp_mail() (WordPress の場合) を呼び出す前に $_SERVER['SERVER_NAME'] = 'mydomain.com' を設定することだけです。その後、すべてが機能します。

于 2013-01-13T17:54:03.927 に答える