Если не хочется использовать сервис для рассылок, ставьте себе на сервер phpnewsletter или mailwizz - это графические интерфейсы для отправки рассылок, в них уже встроено отслеживание открытий и переходов по ссылкам.
Сколько времени провели на сайте
- это отслеживается системами вебаналитики.
Второй вариант - писать систему аналитики самому. Придется не только делать UI для отображения аналитики, но в первую очередь сделать обработчик исходящих писем, который будет внедрять отслеживание в письма.
Это плохой вариант - велосипед уже давно изобретен, и лучшим решением, по-моему, является использовать внешний транспорт aka сервис для транзакционных рассылок.
Например, можно использовать
sparkpost - до 100к писем в месяц бесплатно.