Google считает письма спамом

313
03 марта 2017, 02:48

Добрый день, у меня проблема с регистрацией пользователей на сайте, гугл все письма подтверждения считает спамом, из за этого я вижу многие пользователи просто забивают на регистрацию и уходят. Какие заголовки нужно передавать что бы все было ок, или что делать? Двиг сайта самописный, на php.

    Delivered-To: *******@gmail.com
Received: by 10.25.208.143 with SMTP id h137csp471735lfg;
        Thu, 23 Feb 2017 06:55:46 -0800 (PST)
X-Received: by 10.28.236.93 with SMTP id k90mr2954531wmh.40.1487861746329;
        Thu, 23 Feb 2017 06:55:46 -0800 (PST)
Return-Path: <no-reply@mysite.net>
Received: from *******.freedomain.thehost.com.ua ([176.114.3.106])
        by mx.google.com with ESMTPS id 196si6753159wmw.120.2017.02.23.06.55.45
        for <myEmailName@gmail.com>
        (version=TLS1_2 cipher=AES128-SHA bits=128/128);
        Thu, 23 Feb 2017 06:55:46 -0800 (PST)
Received-SPF: softfail (google.com: domain of transitioning no-reply@mysite.net does not designate 176.114.3.106 as permitted sender) client-ip=176.114.3.106;
Authentication-Results: mx.google.com;
       spf=softfail (google.com: domain of transitioning no-reply@mysite.net does not designate 176.114.3.106 as permitted sender) smtp.mailfrom=no-reply@mysite.net
Message-ID: <58aef7f2.cd161c0a.52af6.98a5SMTPIN_ADDED_BROKEN@mx.google.com>
X-Google-Original-Message-ID: <172562218.20170223165545mysite.net>
Received: from *********.freedomain.thehost.com.ua ([176.114.3.106] helo=mysite.net) by *********.freedomain.thehost.com.ua with esmtpa (Exim 4.82) (envelope-from <no-reply@mysite.net>) id 1cguo5-0002y0-GN for myEmailName@gmail.com; Thu, 23 Feb 2017 16:55:45 +0200
Date: Thu, 23 Feb 2017 16:55:45 +0200
From: "Робот сервера mysite.net" <no-reply@mysite.net>
X-Mailer: The Bat! (v3.99.3) Professional
Reply-To: "Робот сервера mysite.net" <no-reply@mysite.net>
X-Priority: 3 (Normal)
To: "myEmailName" <myEmailName@gmail.com>
Subject: Создание аккаунта(mysite.net)
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        </head>
        <body>
        <div style="width:600px;">
            <h1 style="font-size:22px;">Добро пожаловать на mysite.net</h1>
            <table>
                <tr>
                    <td>
                        Ваш аккаунт "LADUSHKA" создан. Для завершения регистрации Вам необходимо в течение 3 дней перейти по ссылке.
                        <a href="https://mysite.net/index.php?id=2&hash=065f5117caeacc8642434e0024af61e0">https://mysite.net/index.php?id=verification&hash=065f5117caeacc8642434e0024af61e0</a>
                    </td>
                </tr>
            </table>
        </div>
        </body>
        </html>
Answer 1

Received-SPF: softfail говорит о том, что не настроен SPF.

Добавьте в файл DNS зоны(mysite.net), запись:

mysite.net. IN TXT "v=spf1 +a +mx -all"

Также стоит настроить DKIM.

Настройка для Ubuntu сервера:

sudo apt update
sudo apt install opendkim opendkim-tools
vim /etc/opendkim.conf

Правим конфиг:

Syslog                  yes
UMask                   002
Domain                  mysite.net
KeyFile                 /etc/mail/dkim.key
Selector                mail
SubDomains              yes
OversignHeaders         From
Socket                  inet:8891@localhost

Генерируем ключи:

opendkim-genkey --domain=mysite.net --selector=mail --verbose
sudo mv mail.private /etc/mail/dkim.key
sudo chown root:root /etc/mail/dkim.key
sudo chmod 400 /etc/mail/dkim.key
cat mail.txt # Публичный ключ для записи домена

Настраиваем sendmail:

cd /etc/mail
echo "INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')dnl" >> sendmail.mc
m4 sendmail.mc > sendmail.cf
service opendkim restart
service sendmail restart    

Добавляем TXT запись mail._domainkey:

v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3D...

Указанная в Content-type кодировка не относится к заголовкам письма.
Как следствие Subject нужно кодировать. На php это делается так:

$subject = mb_encode_mimeheader($subject, 'UTF-8', 'B', "\r\n", strlen('Subject: '));
Answer 2

Google может посчитать письмо спамом по множеству причин, но вам следует обратить внимание на это:

Received-SPF: softfail (google.com: domain of transitioning 
no-reply@mysite.net does not designate 176.114.3.106 as permitted sender)

Скорее всего у вас в качестве адреса отправителя указан адрес, доменное имя которого не соответствует IP домена, с которого отправляется почта. Попробуйте указать реальный почтовый ящик, IP адрес домена которого является 176.114.3.106.

Answer 3
  1. Это самое важное, пропишите в DNS своего домена TXT SPF запись примерно следующего содержания: mysite.net. IN TXT "v=spf1 +a +mx +ip4:176.114.3.106 -all". Так же почитайте по поводу DKIM

  2. Если ваш хостер позволяет менять PTR запись для вашего ip поставьте в нее имя вашего домена с которого отправляется почта. Т.е. что бы PTR запись для ip давала такое же имя для которого A запись указывает на этот ip. Сейчас там стоит ....freedomain.thehost.com.ua который например спамассасину не нравится видимо из за наличия слова free а адресе. Текущее состояние проверяется просто nslookup ip-с-которого-шлется-почта

  3. В вашем письме нет Message-ID, его добавляет уже гугл при получении. Должно быть уникальное Message-ID оканчивающееся на @ваш-домен. Обычно это сам делает какой нибудь sendmail на вашей машине, через который вы по идее должны отправлять почту.
  4. Напишите каким нибудь почтовым клиентом письмо с такой же темой, как вы отправляете и посмотрите как кодируется заголовок. Сейчас у вас там просто текст, а должно быть что то вроде Subject: =?UTF-8?B?0KHQvtC30LTQsNC90LjQtSDQsNC60LrQsNGD0L3RgtCwKG15c2l0ZS5u?= =?UTF-8?B?ZXQp?= Русские буквы открытым текстом в заголовках письма нарушают стандарты.
  5. Напишите побольше текста. В несколько строк. Сейчас spamassasin говорит "Message body is only a URI in one line of text or for an image"
READ ALSO
Абракадабра при отправке писем из FireFox (PHP)

Абракадабра при отправке писем из FireFox (PHP)

Кодировка windows-1251На сайте есть блок отправки "жалобы"

264
Переадресация по ссылке

Переадресация по ссылке

Подскажите, как сделать так чтобы пользователь зашедший по ссылке в которой содержится /content/ переходил на ту же самую ссылку ну уже без /content/...

246
Входит ли строка в строку

Входит ли строка в строку

Хочу реализовать, что бы при выборе страницы менялось активное меню

223
JSON и кодировка

JSON и кодировка

Доброго времени суток! Есть такая проблемаPHP-скриптом забираю данные с сервера MS SL Server 2008

343