Пытался, выбило ошибку, и в итоге забил. Что именно пытались, и какую ошибку выбило? На счет отписки, задача уже стоит, позже сделаю. На счет пикселей: метод не надежный, ибо пользователи могут просто почту не проверять или типа того, а может просто на уровне почтовика заблокированы картинки. В общем, нельзя этот метод использовать. Но у меня есть логи (все ошибки записываются). Есть где "пользователь не найден" или "пользователь заблокирован". Да, подобные можно пройти и массово заблокировать. Но все равно, это максимум 30% от базы. По моим наблюдениям, живая база более 70%, это все-таки 7 лет собиралось. Но в любом случае, после обновления, полная рассылки проходит где-то за час-два, так что в целом нормально. Но почта в зоне i.ua доставляет проблем, там по 7 и более mx-серверов и много битых учеток, пока по 3-5 сек на каждый сервер потратит, в общей сложности на одну учетку сейчас уходит +- минута. Вот они сильно тормозят процесс.
Ошибка: Variable "$data" got invalid value { NotificationTypes: { disconnect: { id: "cjofeq0z41qcx0d96xwzuhs31" } } }; Field "NotificationTypes" is not defined by type UserUpdateInput.
Да, почта заработала, спасибо. Правда, меня удивило что я таки зареген тут. Пытался, выбило ошибку, и в итоге забил. По существу: для почтовиков, при объемных рассылках необходимо указывать внизу письма ссылку на "отписаться", тогда пробив почты будет больше. Также мне кажется, что посещалка на 3к зарегеных пользователей тут не похожа. Добавить бы пиксель в письмо и проверить кто читает. Лишних удалить, иначе нагрузка на почту будет расти, а письма будут уходить в никуда. Это предложения-пожелания :)
Диана, здравствуйте! Подозреваю что знаю где проблема. Могу помочь.
Всем привет! Вместо вступления: вполне допускаю, что кого-то может раздражать спам с сайта (уведомления о новых топиках). Если это так, пожалуйста, зайдите в настройки профиля и отключите уведомления. Как минимум в ближайшее время я буду писать много топиков, потому что очень много всего есть, что надо будет документировать. Это в том числе и для меня информационная база. Сегодня вы могли получить сразу несколько спам-писем, это потому что помимо всего прочего я сегодня еще и почту поправил. В частности уменьшил время ожидания клиентского почтового сервера , а так же прописал DKIM (из-за чего процент доставленных писем должен значительно увеличиться). С уменьшением времени ожидания вообще задачка интересная. Проблема была в том, что за раз, при создании нового топика, создается порядка 3000 писем. И все их надо разослать. Пока они рассылаются, если еще топик будет написан, еще 3000 писем добавится. То есть важно, чтобы письма рассылались оперативно. Но используемый сторонний компонент sendmail имеет серьезный недостаток - в нем никак не прописано время ожидания удаленного сервера. Получалось, что если сервер долго отвечает, то и запрос в ожидании долго весит, то есть очередь рассылки стопорится. Крайне неприятный момент. Вроде мелочь, а механизм уведомлений парализуется. А с учетом того, что компонент по всей видимости больше не поддерживается, пришлось его переписать. Но зато он теперь из коробки в компоненте mail-module идет. Вторая связанная с этим задача касалась сортировки писем. Сценарий простой: кто-то создал топик (добавилось куча писем в очередь), после кто-то пришел, написал комментарий (и добавились письма с уведомлением о комментариях). Но без ранговой сортировки письма про комментарии стоят в общей очереди, хотя явно они важнее, чем просто уведомление о новом топике. Добавил ранг в почтовый модуль, теперь при создании письма можно указывать ранг, а при рассылке письма выбираются с учетом ранга от большего к меньшему. Очень удобно. Помимо почты много улучшений было сделано в управлении задачами: поправлен вертикальный скролл и ненужный скролл при клике по диаграмме, а так же добавлено редактирование статусов задач, управление связями задач, фильтр задач по статусу, и расцветка задач по статусам (за выбор цветовой гаммы не пинайте). Особое внимание обращаю на создание связей между задачами. Идеологически было изначально запланировано так, что помимо прямых связей задач родитель-потомок, будут еще и относительные связи. Это удобно, когда схожие задачи находятся в разных проектах и имеют какое-то отношение друг к другу. К примеру, несколько конечных проектов используют один и тот же компонент, в котором обнаружилась бага. Так то багу обнаружили на конечных проектах (и в каждом из них была создана задача), но бага-то в стороннем компоненте. Поэтому в проекте компонента создается задача на устранение баги, а из других проектов создаются ссылки на задачу компонента. В дальнейшем, когда будет доработан механизм уведомлений, каждый владелец конечной задачи получит уведомление, что базовая задача в стороннем компоненте была закрыта и надо перепроверить решение на своей стороне. И вот тут момент: связи эти можно устанавливать даже на задачи чужих проектов. Но делать это можно только через свои задачи. То есть если ваша задача зависит от чужой, то вы на своей задаче жмете входящую стрелочку. Если чужая зависит от вашей, то вы опять-таки на своей задаче жмете, только исходящую стрелочку. В любом случае, первоначальные стрелочки будут только на ваших задачах. Вот как это работает: https://youtu.be/eRTpz69k5ZE Сейчас, конечно, все это мало кого касается, но я верю, что сторонних проектов в будущем будет много, и эффективный механизм отслеживания взаимных задач крайне необходим. На этом пока все. Но вы не молчите. Если хоть какие-то вопросы или предложения возникают, говорите. Ведь уже можно даже к обучению переходить, но так как нет вопросов никаких, не ясно, надо это кому или нет. Пока что я делаю все то, что использую для себя. Но уже есть на чем основы разбирать. Кстати, все это пишется не только для меня. Напомню, что сайт Клуба лежит в открытом доступе, и каждый желающий может его у себя развернуть (спроси меня как))).
Диана, перепроверьте свой шаблон миникорзины. Скорее всего у вас по условию выводится минишоп только в случае наличия товара. То есть, на сколько я помню, он просто так не выводит свои скрипты, обязательно на странице должен быть тег, иначе никакие скрипты на страницу не выводятся. Самый простой способ проверить: добавить товар в корзину, обновить страницу (убедиться, что все необходимые скрипты выводятся), затем в шаблоне закомментировать те блоки, где выводятся данные корзины, обновить страницу, и убедиться, что минишоповские скрипты перестали выводиться на странице. Здесь принцип - не поломаешь, не сделаешь. Если ожидаемо скрипты перестали выводиться, возвращаете шаблон в нормальное состояние и смотрите уже сам чанк миникорзины (или шаблона, в общем того, где используется блок, от которого появляются или пропадают скрипты), пытаетесь найти условие для товара и без, и комментируете тот блок, который выводится, когда товар есть. Комментируете и обновляете страницу, убеждаетесь, что скрипты перестали выводиться. Задача всего этого - найти блок, который отвечает за вывод скриптов и по какому он условию выводится. Надо сделать так, чтобы выводился он без условия. Я не уверен, но скорее всего проблема чиста на уровне шаблонизации.