web-dev-qa-db-ja.com

OpendkimでPostfixを設定してPHPメールに自動的に署名する方法は?

私はそれを見つけました:

  • 送信された電子メールは適切に署名されています(つまり、OutlookやThunderbirdなどのMUAで送信されたもの)
  • コマンドラインで送信された電子メールは適切に署名されています

PHPで送信された電子メール、特にPHPMailer(smtp以外の送信、通常PHP mail()誤って署名されています。

ハックアプローチの一種であるphpMailDomainSignerについて聞いたことがありますが、これをトップで解決したいと思います-可能であればMTA /ミルターレベル。

ここにあります:

/ etc/opendkim.conf

# Log to syslog
Syslog                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
#UMask                  002
# dkim-milter (2.5.2.dfsg-1ubuntu1) hardy:
# Disable new umask option by default (not needed since Ubuntu default
# uses a TCP socket instead of a Unix socket).

# Attempt to become the specified userid before starting operations.
#UserID                 105 # 'id postfix' in your Shell


Domain                  mysubdomain.domain.tld
KeyFile                 /etc/mail/mail.private
Selector                mail

# Common settings. See dkim-filter.conf(5) for more information.
AutoRestart             yes
Background              yes
Canonicalization        relaxed/relaxed
DNSTimeout              5
Mode                    sv
SignatureAlgorithm      rsa-sha256
SubDomains              no
#UseASPDiscard          no
#Version                rfc4871
X-Header                no

Statistics              /var/log/dkim-filter/dkim-stats

/ etc/default/opendkim

SOCKET="inet:8891@localhost"

/ etc/postfix/main.cf(設定ファイルの最後の行)

# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
2

php mail()が送信した電子メールで適切なSMTP From、別名Envelope Fromヘッダーを確認してください。 [email protected]アドレスとしてSMTP Fromのようなものがない場合、Domain mysubdomain.domain.tldファイルに/etc/opendkimがあるため、opendkimはそれらに署名しません。

2
Tutul