Форма поиска

Не получается?

Не получается решить проблему с Друпалом?

Готовы помочь делом и советом. Стоимость часа - 500 руб.

Запросить помощь

Поделитесь ссылкой:

Письма с сайта, отправляемые функцией php mail() не доходят на gmail

Что делать?

1. Прописать обратную DNS зону - запись PTR. Обычно это делается в панели хостера, который предоставляет сервер или VPS. 

2. Прописать в ДНС запись SPF, вида:

@ TXT v=spf1 ip4:95.167.111.222 ip6:fe00::0000:8a85:3a37:9d52 ~all

Здесь - 95.167.111.222 - это адрес с которого будут отправляться письма. 

Если почта сервера обрабатывается с помощью сервиса mail.ru почта для домена, то строка будет такой: 

@ TXT v=spf1 ip4:95.167.155.164 ip4:10.0.87.90 ip6:fe80::1a98:8a85:3a37:9d52 include:_spf.mail.ru ~all

Строчка include:_spf.mail.ru - добавит сервера mail.ru. Аналогично для других "почт на домене", это описано в инструкциях.

В чем смысл? Почтовый сервер получает письмо с полем from: info@domain.ru. Смотрит запись SFP из ДНС домена domain.ru и сравнивает ip адрес с которого реально пришло письмо, с тем, что указан в SPF. Если совпадает - то не спам. 

3. Настроить DKIM на сервере. Идея DKIM следующая: в ДНС вы прописываете публичный ключ, а почтовая программа подписывает письмо закрытым ключем при отправке. При получении выполняется проверка подписи, и если она верна - письмо не считается спамом. 

Сначала генерируем ключи (у меня CentOS + Exim):

openssl genrsa -out /etc/exim/dkim/domain.ru.key 1024

у нас он будет в каталоге /etc/exim/dkim/, который я сначала создал.

Теперь генерируем публичный ключ: 

openssl rsa -in /etc/exim/dkim/domain.ru.key -pubout

получаем: 

writing RSA key
-----BEGIN PUBLIC KEY-----
PTW/tOoMRpQpI1TPb83qI6b94h1r98X68Sw1iUNK81QG/VYWrjWo
JUtqCairOzOZSAJ8w55K1S5uY70bc8hPTW/tOoMRpQpI1TPb83qI
6b94h1r98X68Sw1iUNK81QG/VYWrjWoJUtqCairOzOZSAJ8w55K1
S5uY70bc8hPTW/tOoMRpQpI1Th
-----END PUBLIC KEY-----

Записываем ключик в файл /etc/exim/dkim/domain.ru.public для памяти.

Важно! Ключик будет читать программа exim при оправки сообщения. Так что надо сделать его доступным для пользователя, от которого запущен процесс exim. У меня это пользователь exim:

cd /etc/exim/dkin
chown exim *

Теперь прописываем публичный ключ в ДНС, в записи TXT для поддомена mail._domainkey домена нашего сайта: 

mail._domainkey TXT v=DKIM1; g=*; k=rsa; p=PTW/tOoMRpQpI1T
Pb83qI6b94h1r98X68Sw1iUNK81QG/VYWrjWo
JUtqCairOzOZSAJ8w55K1S5uY70bc8hPTW/tOoMRpQpI1TPb83qI
6b94h1r98X68Sw1iUNK81QG/VYWrjWoJUtqCairOzOZSAJ8w55K1
S5uY70bc8hPTW/tOoMRpQpI1Th

Следующий шаг - сказать exim, чтоб подписывала письма при отправке. Для этого я задал в exim.conf такие строки: 

DKIM_DOMAIN                     = domain.ru            
DKIM_FILE                       = /etc/exim/dkim/domain.ru.key
DKIM_PRIVATE_KEY                =/etc/exim/dkim/domain.ru.key

перезапускаем процесс exim с новой конфигурацией

service exim restart

Как все проверить? Первым делом смотрим лог /var/log/exim/panic.log. Если там все ок - смотрим на отправленное письмо глазами gmail. Для этого есть такой сервис: отправляем письмо на 

check-auth-info=domain.ru@verifier.port25.com

здесь - info=domain.ru - это почта, на которую придет отчет с проверкой SPF, PTR, DKIM. 

Вот и все. Теперь почта должна доходить. Хотя, это не исключает ее попадания в папку спам на основе анализа текста сообщения. 

Полезна ли для вас эта информация?: 
5
Ваша оценка: Нет В среднем: 5 (2 голосов)

Размещение и поддержка сайтов на Drupal

Предлагаем услуги по размещению и поддержке сайтов, разработанных как в нашем бюро, так в других веб-студиях.

Мы готовы взять на себя все работы по поддержке вашего сайта или электронного магазина и гарантируем его доступность и безопасность.

Подробнее ...

Предметная фотосъемка

Выполним профессиональную фотосъемку вашей продукции, офиса, производства, участка или любых других объектов.

Оплата услуг

Оплатить услуги разработки, модернизации, поддержки и размещения сайтов можно любыми удобными вам способами как в интернете, так и оффлайн. Оформляются все бухгалтерские документы.

Оплата услуг