我试图让DKIM使用PHP中的Swiftmailer。只有设置一次主体(HTML或文本)时,它才有效并且dkim通过,但是当添加两个部分时,我得到一个"正文哈希没有验证" dkim失败。
有没有人知道使用Swiftmailer签署包含HTML和文本部分的电子邮件的正确方法?
// Create the signer
$privateKey = file_get_contents($dkimPrivateKeyLocation);
$domainName = 'from.here';
$selector = 'default';
$signer = new Swift_Signers_DKIMSigner($privateKey, $domainName, $selector);
$signer->ignoreHeader('Return-Path');
// Create the message
$message = Swift_SignedMessage::newInstance();
// Attach the signer
$message->attachSigner($signer);
// Message setup
$message->setFrom('email@from.here');
$message->setTo('email@to.here');
仅限HTML 传递
$message->setSubject('Dkim Html Only Test');
$message->setBody('<p>Hello World</p>', 'text/html','UTF-8');
TEXT仅传递
$message->setSubject('Dkim Text Only Test');
$message->setBody('Hello World', 'text/plain','UTF-8');
HTML和文字失败
$message->setSubject('Dkim Html and Text Test');
$message->setBody('<p>Hello World</p>', 'text/html','UTF-8');
$message->addPart('Hello World', 'text/plain','UTF-8');
我不确定我做错了什么,SwiftMailer文档有点稀疏,所以我不确定下一步该尝试什么。我已经尝试了简单和放松的身体经典类型,但没有成功。