Вы столкнулись с проблемой отправки email в Вашем интернет-магазина на базе VamShop?!
Почта из магазина не доходит до email Ваших клиентов, либо попадает в спам?!
Тогда эта статья как раз для Вас.
В данной статье разберёмся, как настроить Ваш интернет-магазин на базе VamShop таким образом, что б почта всегда доходила до получателя и не попадала в папку Спам.
Будем настраивать DKIM и SPF в Вашем магазине.
Немного справочной информации:
Что такое DKIM:
Технология DomainKeys Identified Mail (DKIM) позволяет организации поручиться за сообщение, которое пересылается по электронной почте. С технической точки зрения – это метод подтверждения домена отправителя через криптографическую подпись.
Что такое SPF:
SPF-запись позволяет указать в TXT-записи домена список серверов, которые имеют право отправлять сообщения от имени e-mail адресов этого домена. Проще говоря, SPF-запись помогает защититься от злоумышленников, рассылающих СПАМ от имени вашего домена.
Думаю, многие пользователи VamShop сталкивались с ситуацией когда покупатели делающие заказы, отправляющие письма со страницы обратной связи, задающие вопросы о товарах, просто не получали на указанный email ящик никаких писем: писем с подтверждением заказа, писем об изменении статуса заказа, писем о доставка заказа, ответы на свои вопросы и т.д. и т.п.
Причём письма не доходят не всегда, к примеру, на сервис google mail, яндекс почта доходят без проблем, а вот на mail.ru — не доходит никакая почта из магазина.
Просто не приходит и всё, хотя технически в магазине всё настроено и работает правильно.
Вот как раз для решения таких проблем с доставкой email для абсолютно всех покупателей вне зависимости от сервиса, на котором расположен email, мы и будем настраивать DKIM и SPF.
Делается всё в 3 этапа:
1. Генерация ключей.
2. Настройка DNS записей домена магазина.
3. Настройка на стороне VamShop.
1. Генерация ключей.
Первое, что нам нужно сделать — создать приватный и публичный ключ для нашего домена. Вариантов есть несколько, вручную сгенерировать через консоль ключ, либо использовать онлайн-сервис, будем использовать онлайн-сервис — https://dkimcore.org/tools/keys.html
Заходим на сайт: https://dkimcore.org/tools/keys.html
На первом шаге нам нужно указать названия для файлов приватного и публичного ключа.
рис.1
Можно указать любые название, либо просто оставить значения по умолчанию и нажать Submit.
Переходим на следующую страницу:
рис. 2
Здесь нам необходимо заполнить поля:
Domain — Название Вашего домена, где установлен интернет-магазин. Указывайте название Вашего домена, magazin.ru
Identity — Укажите Ваш email адрес, который у Вас установлен в качестве отправителя в настройках интернет-магазаина.
Selector — Укажите идентификатор, который Вы затем будете добавлять в настройки DNS Вашего домена. К примеру, пишите phpmailer
Passphrase — Пароль. Любой набор цифр, символов. Только не забудьте его. Он Вам пригодится на этапе настроек DNS записей.
Заполнили форму и нажимаем Submit.
Всё, набор необходимых ключей и инструкций сгенерирован.
рис. 3
Скачиваем полученный архив, нажав Download ZIP file
И сохраняем его к себе на комп.
рис. 4.
Распаковываем архив. В архиве, собственно, всё тоже самое, что описано в этой статье + два ключа: приватный и публичный.
Переходим ко второму шагу.
2. Настройка DNS записей домена магазина.
Обычно редактирование DNS записей Вашего домена доступно либо через панель управлени доменом, доступ к которой Вам предоставляет Ваш регистратор домена.
Либо через панель управления хостингом.
В нашем примере будем настраивать через панель управления ISPManager, но это не принципиально, главное, что б был доступк редактированию DNS записей Вашего домена.
Заходим в раздел Доменные имена — Записи и создаём новую запись кнопкой Создать.
Добавим сначала SPF запись.
Заполняем форму:
рис. 5.
Имя: название-домена.ру.
Тип: TXT
Адрес: v=spf1 ip4:ip-адрес-вашего-сервера a mx ~all
Нажимаем Ok, в списке записей должна появиться наша TXT запись.
Добавляем ещё одну запись для DKIM подписи всех отправляемых из магазина писем.
Снова нажимать Создать и заполняем форму:
Имя: phpmailer._domainkey
phpmailer — это значение поля Identity из первого раздела нашей статьи. По умолчанию писали phpmailer, если Вы указали своё значение, указывайте вместо phpmailer своё значение.
Тип: TXT
Адрес: v=DKIM1; k=rsa; g=*; s=email; h=sha1; t=s; p=<ваш-публичный-ключ>;
Вместо <ваш-публичный-ключ> указываете Ваш публичный ключ.
Публичный ключ — это содержимое файла .htkeypublic из первого раздела статьи.
Из архива, который был сгенерирован.
Открываете полученный файл .htkeypublic и просто копируете содержимое между:
——BEGIN PUBLIC KEY——
вот это содержимое копируете
——END PUBLIC KEY——
и вставляете в строке без кавычек, пробелов, перевода каретки, просто что б одна большая строка получилась.
Всё, сохраняете, нажав Ok.
В списке DNS записей домена должна появиться новая запись phpmailer._domainkey
Всё, домен настроили.
Проверить настройки DNS записей Вашего домена можно например здесь — https://mxtoolbox.com/dkim.aspx
рис. 6
Указываете Ваш идентификатор (по умолчанию phpmailer) и название Вашего домена.
и получаете результат:
Если всё правильно, то отобразится Ваша строка phpmailer, которую Вы добавляли в DNS записи.
рис. 7
Если Вы что-то сделали неправильно, либо, возможно ещё DNS записи не обновились, то будет написано:
No DKIM Records exist
рис. 8
Ваша задача добиться результата как на рис. 7.
Всё, DNS записи настроили, осталось самое лёгкое — настроить PHPMailer на стороне VamShop, что б все отправляемые из магазина письма были заверены DKIM подписью.
3. Настройка на стороне VamShop.
Чтобы добавить DKIM подпись во все отправляемые из магазина письма, открываем файл /app/Controller/Component/EmailComponent.php и ищем следующий код:
// Set default PHPMailer variables (see PHPMailer API for more info) $this->IsMail(); $this->CharSet = 'utf-8'; $this->IsHTML(false);
Добавляем после данного кода:
//DKIM Settings $this->DKIM_domain = 'your-store.com'; $this->DKIM_private = '/path/to/private/key'; $this->DKIM_selector = 'phpmailer'; $this->DKIM_passphrase = ''; $this->DKIM_identity = 'your@email.com';
В переменной $this->DKIM_domain указываем название домена Вашего интернет-магазина.
В переменной $this->DKIM_private указываем полный путь до файла с приватным ключом (файл можно положить в любую папку у Вас на сервере, главное потом правильно указать полный путь до этого файла). Файл с приватным ключом (по умолчанию называется .htkeyprivate) был сгенерирован в архиве в первой части статьи.
В переменной $this->DKIM_selector указываем единтификатор, так же из первой части статьи (Selector). По умолчанию phpmailer
В переменной $this->DKIM_passphrase указываем пароль, так же из первой части статьи (Passphrase).
В переменной $this->DKIM_identity указываем email, так же из первой части статьи (Identity).
Всё, указываем свои данные.
На этом настройка завершена.
Если всё сделано правильно, то теперь вся отправляемая из Вашего интернет-магазина на базе VamShop почта будет заверена DKIM подписью.
Теперь почта будет доходить до всех покупателей, в том числе и на ящики mail.ru сервиса.
Как проверить, что уходящая из магазина почта заверена DKIM подписью?!
Оформите для пробы заказ в магазине, и откройте полученное письмо в gmail, mail.ru, яндекс почте.
Посмотрите заголовки письма (исходный текст письма), в коде должны быть следующие опции:
dkim=pass
spf=pass
рис. 9
В Gmail при просмотре письма видно, что письмо заверено dkim подписью:
signed-by: название-вашего-домена.
рис. 10
А так же в детальной информации о письме видно, что DKIM и SPF включены:
DKIM: PASS
SPF: PASS
рис. 11
Что как раз значит, что письмо было заверено Вашей DKIM подписью.
На этом всё.
Если у Вас не получается настроить DKIM подпись самостоятельно, можете заказать данную услугу у нас в магазине: Настройка DKIM.
P.S. Кроме того, в DNS записи домена можно DMARC параметры добавить:
Имя: _dmarc.название-домена.ру
Тип: TXT
Адрес: v=DMARC1; p=none