我的 dkim 配置运行良好。我正在使用一款电子邮件营销应用,非常简单,通常我使用发件人 ID(即我的域名公司)发送营销活动,发件人电子邮件则是客户电子邮件。我用我的发件人 ID 和域名公司签署了 dkim,一切都运行良好,但现在不知何故我遇到了 dkim 故障,不知道 PHPMailer 或 Gmail 规则是否有任何变化:
来自我的 smtp Postfix 服务器的邮件日志消息
Jul 15 10:24:34 companydomain opendkim[183343]: 286315A1BCF: no signing table match for '[email protected]'
Jul 15 10:24:34 companydomain opendkim[183343]: 286315A1BCF: key retrieval failed (s=dkim, d=companydomain.com): 'dkim._domainkey.companydomain.com' query failed
Gmail 原文
DKIM-Signature: v=1; d=companydomain.com; s=dkim; a=rsa-sha256; q=dns/txt; t=1689431315; c=relaxed/simple; h=Date:To:From:Reply-To:Subject:Message-ID:X-Mailer:MIME-Version:Content-Type; [email protected]; z=Date:Sat,=2015=20Jul=202023=2010:28:35=20-0400 |To:[email protected] |From:=3D?UTF-8?Q?Instituto_Pedag=3DC3=3DB3gico_de_Caracas?=3D=20<[email protected]> |Reply-To:[email protected] |Subject:Bienvenido=20Cliente |Message-ID:<[email protected]> |X-Mailer:PHPMailer=206.8.0=20(https://github.com/PHPMailer/PHPMailer) |MIME-Version:1.0 |Content-Type:multipart/alternative=3B=20boundary=3D"b1=3D_MyZhklUNeLD68Ba 0maXIEDVYBtTGcBKu0tCwv4NEyPU"; bh=oyle56yHSYBUkyZZ/Zuf0g/9jNuIcgHbPw9t44NuqaI=; b=hJzqH6LJfmUkHffAdUc/qUgwHiDNLSPk6tD916gleLGKAN96s2iPrTPvqNIZaAd1/jw30xu5D eRX2/J22Sq3cdFky3r2l2uVQeWNdfZMYWzrTcd4pFOz04mjMrVQsDl0wynr7I6a+tGCOXfZvo q+O7IRmkyry4ocOciaw/etKp0=
这是我的代码,但就像所说的那样,代码和服务器没有任何变化,一切都运行完美:
我检查所有内容都很好。
$this->mail->DKIM_domain = $domainId;
$this->mail->DKIM_private = __DIR__ . "/../assets/smtp/" . $domainId;
$this->mail->DKIM_selector = 'dkim';
$this->mail->DKIM_passphrase = '';
$this->mail->DKIM_identity = $sender;
答案1
由于某种原因,选择器更改为default
。我怎么知道呢?只需检查文件/etc/opendkim.conf
## Defines the name of the selector to be used when signing messages.
Selector default
所以我改变了下一行
$this->mail->DKIM_selector = 'dkim';
到
$this->mail->DKIM_selector = 'default';