Чистый домен это не есть хорошо. Хорошо когда по нему обороты качественных писем большие. Это как с кредитной историей - если не брали кредит это не значит что Вам можно доверять, и на низкую % ставку от банка можно не рассчитывать. Наращивайте репутацию, и пользуйтесь всеми плюшкими почтовиков.
1. что показывает var_dump($productsByCat);
2. в цикле сделайте <= а не <
3. поле проверки выполнения запроса попробуйте die(mysql_error()); это внутрь if(!$result)
могу только предположить что у вас нет других продуктов (откуда там вы их тянете) кроме как 2, либо есть но не в категории 30, а она у вас жестко указана.