Написать консольный скрипт на РНР для отправки имейлов пользователям
2500 UAHТаблица в БД уже есть, я скину структуру данных исполнителю.
Скрипт должен быть написан по стандарту PSR-12, работать с РНР7.4 и РНР8, желательно в каждом классе прописать `declare(strict_types=1)`. Желательно перед сдачей проекта проверить код линтером: phpstan or psalm на базовом уровне.
Скрипт будет по крону работать. Он должен:
- выбрать из таблицы БД список из NN пользователей, которым имейл рассылка не была отправлена (SELECT * FROM email_subscriptions WHERE email_sent_status = 0)
- отправить (попытаться) html имейл каждому пользователю из списка
- после успешной отправки имейла сохранить флаг "отправлено" email_sent_status = 1
- вывести на экран и в лог-файл информацию: сколько строк из БД выбрано, сколько имейлов отправлено, сколько имейлов отправить не получилось (сколько и каких было удалено, если были удаления)
****
Детали:
1.1) Должен быть конфиг файл с доступами к БД и значением NN
2.1) перед отправкой имейла нужно сгенерировать discount_hash и ссылку для пользователя вида `*название.сайта/?discount=%discount_hash%*`
2.2) html шаблон с текстом будет сохранён в отдельном файле, нужно будет подставить только размер скидки и ссылку, формат может обсудить, я предложил бы переменные в файл подставлять через str_replace, без шаблонизаторов вида blade/twig
2.3) нужно сохранить в БД поля discount_hash, email_sent_status (в любом случае)
2.4) если отправка завершилась неуспешно — сохранить в БД кол-во попыток отправки, после 3-х неудачных попыток отправки имейла удалить строку из бд
4) логи должны храниться неделю. Для удобства можно взять любую либу (например monolog/monolog)
Отправку имейлов хотелось бы сделать через unisender.
Отзыв заказчика о сотрудничестве с Миколой П.
Написать консольный скрипт на РНР для отправки имейлов пользователямВсе замечательно, могу рекомендовать Миколу как профессионала.
Мне важно было, чтобы код и архитектура РНР-приложения были созданы в современном стиле и с возможностью дальнейшего масштабирования. И задание было выполнено, как оговаривалось, с комментариями и обсуждениями по ходу проекта. Поэтому всё круто.
![]()
Отзыв фрилансера о сотрудничестве с заказчиком
Написать консольный скрипт на РНР для отправки имейлов пользователямИнтересное задание.
Заказчик понимает, чего хочет.
Я, как всегда, немного провалил сроки, но требования удовлетворил.
Рекомендую к сотрудничеству.
Актуальные фриланс-проекты в категории PHP
Сделать так, чтобы письма о заказах из магазина не попадали в спамСейчас есть магазин на опенкарт, письма о заказах попадают в спам, нужно сделать так, чтобы они попадали во Входящие (ukr.net gmail), проверьте. Хостинг написал: Плохая доставка электронной почты может быть связана с низкой репутацией отправителя - IP или домена. В таком… PHP, Веб-программирование ∙ 1 час 53 минуты назад ∙ 32 ставки |
Перенести полностью готовую адаптивную HTML5-структуру в WordPress.
12 000 UAH
Я ищу опытного WordPress-разработчика, который сможет преобразовать наш тщательно подготовленный статический HTML5/CSS3 код в высокопроизводимую кастомную WordPress-тему. Фронтенд уже практически готов (примерно 99%): семантическая разметка, метаданные и мультиязычная структура… CMS, PHP ∙ 3 дня 3 часа назад ∙ 67 ставок |
Интеграция GoPosПривет, делал кто нибудь интеграцию GoPos с кастомным сайтом для ресторана в Польше? Нужна помощь, у них очень скудная документация, есть только swagger и тот без описаний https://app.gopos.io/doc/swagger-ui/index.html Суть такая, использовали от них сайт для онлайн заказов,… PHP, Веб-программирование ∙ 3 дня 19 часов назад ∙ 25 ставок |
Прописать мета данные АЛЬТ при помощи ИИСайт на Laravel , на сайте много изображений, для которых нужно прописать корректные по семантики и релевантные для странице АЛЬТ описание изображения в автоматическом режиме, с возможностью проверки AI и машинное обучение, PHP ∙ 4 дня 16 часов назад ∙ 35 ставок |
Нужен разработчик для завершения и интеграции проекта по автоматическому сбору и обработке данных
700 UAH
Основная часть парсера уже реализована. Парсер работает на Windows-среде через Microsoft Edge: сайт имеет антибот-защиту, поэтому сбор данных выполняется не прямыми HTTP-запросами, а через живую браузерную сессию. Скрипты управляют открытой вкладкой Edge через Chrome DevTools… PHP, Веб-программирование ∙ 4 дня 22 часа назад ∙ 26 ставок |