3

私はPHPmailerを使用してメールを送信しています。

キーを生成するためにpostfixサービスとDKIM-Milterをインストールしました。

コマンドラインを使用してメールを送信すると正常に機能し、メールには「signed-by:mydomain.com」と表示されたDKIM署名が付いています。

Authentication-Results: mx.google.com; spf=pass (google.com: domain of root@mydomain.com designates 182.50.xxx.xxx as permitted sender) smtp.mail=root@mydomain.com; dkim=pass header.i=@mydomain.com

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mydomain.com; s=default;
    t=1325531456; bh=+gZFhu4Id2AXb8UVbFLzDVVlChWGhvxvJUIdjdMLQsk=;
    h=To:Subject:Message-Id:Date:From;
    b=mH4GV8ayicc6UMn1uopCc9VJb5v2MiOKQpEtwJjckzoJ8ePhRKQIZI5KnzSdSoSP3
     BtmehOQhMn9kIR/TlL2dlSog2EkRNeAaWcmO1K3khtCZ7rkXHGJsDn9C6l49K0tJa2
     rplPOSI7wS8+3NCEiuc5sjZimPo4v9WuTECVqxkg=

しかし、PHPmailer(5.1)を使用して、DKIM署名がサポートされているメールを送信したいのですが、これを返します。

Authentication-Results: mx.google.com; spf=pass (google.com: domain of info@mydomain.com designates 182.50.xxx.xxx as permitted sender) smtp.mail=info@mydomain.com; dkim=neutral (bad format) header.i=info@mydomain.com

DKIM-Signature: v=1; a=rsa-sha1; q=dns/txt; l=70; s=default;
    t=1325533594; c=relaxed/simple;
    h=From:To:Subject;
    d=mydomain.com; i=@mydomain.com;
    z=
    |
    |Subject:=20Testing=20email=20from=20phpmailer;
    bh=lC+16EvauA2HuJG03ArE6CtgLuY=;
    b=

class.phpmailer.phpファイルを確認しましたが、いくつかのDKIMオプションがあります。

  public $DKIM_selector   = 'default';

  /**
   * Used with DKIM DNS Resource Record
   * optional, in format of email address 'you@yourdomain.com'
   * @var string
   */
  public $DKIM_identity   = '';

  /**
   * Used with DKIM DNS Resource Record
   * optional, in format of email address 'you@yourdomain.com'
   * @var string
   */
  public $DKIM_domain     = '';

  /**
   * Used with DKIM DNS Resource Record
   * optional, in format of email address 'you@yourdomain.com'
   * @var string
   */
  public $DKIM_private    = '';

このオプションを構成するにはどうすればよいですか?公開鍵と秘密鍵は知っていますが、$DKIM_privateと$DKIM_identityとは何ですか?

4

4 に答える 4

9

$DKIM_privateは秘密鍵と$DKIM_identity用ですが、よくわかりませんが、オプションです。詳細については、http://dkim.org/specs/draft-allman-dkim-base-01を参照してください。 html#anchor9。これがいくつかのサンプルコードです。

$mail->DKIM_domain = 'mydomain.com';
$mail->DKIM_private = '/path/to/private_key';
$mail->DKIM_selector = 'default'; //this effects what you put in your DNS record
$mail->DKIM_passphrase = '1234567';

お役に立てば幸い

于 2012-01-03T04:02:08.697 に答える
3

DKIM-Signature各プロパティが新しい行に表示されるように、ヘッダーを分割する必要があります。DKIMのPHPMailer実装には、修正が必要ないくつかの問題があります。

$DKIM_identity値はオプションです。の役割を理解するには、メソッド$DKIM_privateを参照してください。DKIM_Sign

于 2012-01-04T20:01:40.743 に答える
0

ここから始める

http://dkim.worxware.com/

下部にある[続行...]をクリックします。

指示付きの秘密/公開鍵を生成することができます

簡単に言うと:-秘密/公開鍵ファイルを使用して送信するように設定し、電子メールヘッダーにdkimヘッダーを追加します-公開鍵のDNStxtレコードを変更します

于 2016-01-31T13:15:38.420 に答える
0

最新バージョンではsha1ではなくsha256が使用されているため、class.phpmailer.phpファイルにアクセスしてsha256のすべての記述を編集しない限り、既存のDKIMジェネレーター( http://dkim.worxware.com/ )は機能しません。 sha1に戻ると、これを行うと、検証者が公開鍵にsha256を使用できない(エラーが発生する)問題が修正されます。

于 2016-02-08T09:55:45.553 に答える