使用 DKIM 密钥在 phpmailer 中发送邮件

2022-08-30 19:04:04

当前我正在使用phpmailer发送邮件。现在如何使用DKIM密钥在phpmailer中发送电子邮件

我在phpmailer类文件中搜索,我找到了下面的代码

    /**
     * DKIM selector.
     * @type string
     */
    public $DKIM_selector = '';

    /**
     * DKIM Identity.
     * Usually the email address used as the source of the email
     * @type string
     */
    public $DKIM_identity = '';

    /**
     * DKIM passphrase.
     * Used if your key is encrypted.
     * @type string
     */
    public $DKIM_passphrase = '';

    /**
     * DKIM signing domain name.
     * @example 'example.com'
     * @type string
     */
    public $DKIM_domain = '';

    /**
     * DKIM private key file path.
     * @type string
     */
    public $DKIM_private = '';

我能知道它怎么可能吗?


答案 1

如果您查看 PHPMailer 单元测试,就会发现一个如何设置 DKIM 的示例。

以下是发送消息所需的基础知识(显然,更改域,密钥路径和选择器以匹配您的配置,如果您使用密码,则添加密码短语);这也假设您打算使用与您的地址相同的标识符进行签名:From

$mail->DKIM_domain = 'example.com';
$mail->DKIM_private = '/path/to/my/private.key';
$mail->DKIM_selector = 'phpmailer';
$mail->DKIM_passphrase = '';
$mail->DKIM_identity = $mail->From;

当您收到邮件时(而不是之前),它将使用这些设置来生成 DKIM 签名。send()


答案 2

我有以下经验:

  1. http://dkim.worxware.com/createkeys.php 生成的密钥对可能适用于 SHA1,而 class.phpmailer.php 的最新版本 5.2.14 适用于 SHA256。
    上面的示例不起作用。
  2. 我将class.phpmailer中的所有设置和函数从SHA1上的SHA256.php(我简单地将所有字符串SHA256替换为字符串SHA1)。
    我的用于DKIM签名的PHP脚本已经功能正常。

推荐