У меня есть проблема с отправкой DKIM подписанного письма с PHPMailer (ст 5.2.9).не может подписать DKIM письма от PHP с PHPMailer
Сервер SMTP, который я использую (realsender.com), должен подписывать каждое электронное письмо, которое я отправляю.
Он работает, когда я отправляю электронное письмо из программы Delphi, но вместо этого он не работает с PHP.
Я проверил как электронную почту, посланную PHPMailer и Delphi с https://www.mail-tester.com
Результаты 10/10 для Delphi и 6,8/10 для PHP.
Это часть файла отправить письмо с PHPMailer:
$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->setLanguage('it');
$mail->isSMTP();
$mail->Host = SMTP_HOST;
$mail->SMTPAuth = SMTP_AUTH;
$mail->Username = SMTP_USERNAME;
$mail->Password = SMTP_PASSWORD;
if (defined('SMTP_PORT')) {
$mail->Port = SMTP_PORT;
}
if (defined('SMTP_SECURE')) {
$mail->SMTPSecure = SMTP_SECURE;
}
if(defined('DKIM_DOMAIN')){
$mail->DKIM_domain=DKIM_DOMAIN;
$mail->DKIM_selector=DKIM_SELECTOR;
$mail->DKIM_private=DKIM_PRIVATE;
}
[...]//setting from, to, subject and body
$mail->send();
Замечание: при $mail->send();
всегда возвращает истину.
Во-первых, я попытался отправить электронное письмо без установки свойства DKIM_, а затем я попытался отправить с ними.
В обоих случаях результатом является недопустимый знак DKIM и оценка 6.8.
Я попросил поддержку SMTP, если они что-то знают об этом, но они сказали, что это может быть проблема самого PHPMailer.
Что я могу сделать для создания DKIM, который работает?
Заранее спасибо.
UPDATE:
я обнаружил, что проблема заключается в теле письма.
Я также прекратил использовать DKIM_ vars, потому что мой SMTP-сервер автоматически подписывает все электронные письма.
отправка по электронной почте пустой, без тегов или с тегами, но без текста все в порядке (9.9), в противном случае оценка - 6.8.
Также небольшая электронная почта html (со ссылками и divs) в порядке.
Что это может быть?
Вы проверили '' DKIM_ * константы с помощью 'var_dump'? –
Взгляните на [DKIM unit test] (https://github.com/PHPMailer/PHPMailer/blob/master/test/phpmailerTest.php#L1660). Также вы можете получить больше сообщений об ошибках, включив исключения: '$ mail = new PHPMailer (true);'. Последний PHPMailer - 5.2.10, хотя он не имеет изменений, связанных с DKIM. – Synchro