Проблемы с DKIM в классе phpmailer

    Если у вас сервер на windows, вы используете класс отправки почты phpmailer, подписываете ваши письма с помощью DKIM, отсылаете письма на gmail и каждый раз получаете dkim=hardfail, но перепробовали уже всё что можно — посмотрите в заголовки отправляемого письма.

    Если заголовок DKIM-Signature похож на этот (From и To в переменной z пусты)…

    DKIM-Signature: v=1; a=rsa-sha1; q=dns/txt; l=114; s=oboi;
    t=1300563690; c=relaxed/simple;
    h=From:To:Subject;
    d=oboi.ws; i=noreply@oboi.ws;
    z=
    |
    |Subject:=20=D0=9F=D0=B8=D1=81=D1=8C=D0=BC=D0=B5=D1=86=D0=BE=20=D0=B2=20=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=82=D0=B52;
    bh=FpLEEuqL6DiQ4kqwe2qin77huEQ=;


    … то откройте файлик class.phpmailer.php, найдите строку №2277 и замените её с

    $headers = explode("\r\n",$headers_line);

    на

    $headers = explode("\n",$headers_line);

    и всё у вас будет хорошо.

    Не претендую на новизну, но не написать не могу. Сам убил 18 часов на то чтобы это найти.
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 5

      0
      Почему-то мне кажется, что вы имели в виду строку №2277
      $headers = explode("\r\n",$headers_line);

      А вообще что-то они они там напутали с EOL'ами. К тому же если слать через mail(), то он сам добавляет заголовок To и в поле z он по их коду останется пустым. Глюкалово, ей-богу
        0
        Да! Конечно, у меня уже крыша съезжает. Поправил.
        0
        Как бы то ни было, во всех случаях, где можно переложить добавление DKIM на сервер, это нужно сделать.
          0
          Вообще, желательно чтобы сервер, который занимается отправкой почты, подписывал эти письма, верхний уровень не должен об этом знать :-)

          Хорошая нотация :-)
            +3
            Уж лучше просто забыть о PhpMailer и использовать SwiftMailer.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое