Насчёт "обязательно ли пользователю нужно быть подписанным на бота": не совсем. Пользователь должен был
обязательно написать боту хотя бы один раз, чтобы телеграм разрешил писать этому человеку, иначе все боты спамили бы каждому пользователю в этом мессенджере. Насчет написать сообщение по телефону:
в официальной документации метода sendMessage указано, что можно либо отправить по ID пользователя, либо по его domain.