Я пытаюсь заставить DKIM работать с Swiftmailer из PHP. Это работает, и dkim проходит, когда устанавливает тело только один раз (HTML или Text), однако при добавлении обеих частей я получаю «хэш тела не проверен», dkim завершается ошибкой.
Кто-нибудь знает правильный способ подписать письмо с HTML и текстовыми частями, используя Swiftmailer?
// 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 protected]');
$message->setTo('[email protected]');
Только HTML проходит
$message->setSubject('Dkim Html Only Test');
$message->setBody('<p>Hello World</p>', 'text/html','UTF-8');
Только текст проходит
$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 немного скудна, поэтому я не уверен, что делать дальше. Я пробовал как простые, так и расслабленные типы канонов тела, но безуспешно.
Задача ещё не решена.
Других решений пока нет …