The table here -- https://en.wikipedia.org/wiki/Test_statistic -- says that the $t$-test can be used when the following holds:
(Normal population or $n$ large) and $\sigma$ unknown
This seems to imply that if $n$ is small, we cannot use the $t$-test (otherwise the condition $n$ large wouldn't have been mentioned). At the same time, some other sources say that we can and should use $t$-test when the '$n<30$' or just anytime that we do not know $\sigma$ For the latter claim, see e.g. the table here. For the former, see this, which says:
The t-test is the small sample analog of the z test which is suitable for large samples. A small sample is generally regarded as one of size n<30. A t-test is necessary for small samples because their distributions are not normal.
So, Wikipedia contradicts some of the other sources. My question is: if the population is not normal and $n$ is not large, is it possible or not to use the $t$-test?
The t-distribution is only a correct model when you calculate the T-statistic from a sample from a normally distributed population -- that was the assumption that was used to derive the distribution in the first place.
For large samples, the sample mean will (almost) behave as if it were drawn from a normal distribution -- you'll see that the percentiles provided by the t-distribution will be very close to the normal distribution percentiles for n>30 from a normal distribution.
That being said, the t-test is known to be robust to deviations of normality(see starting on p.19) unless you have a small sample from a very non-normal population (i.e., "fat-tailed": https://en.wikipedia.org/wiki/Fat-tailed_distribution).
Just like with any dataset, you should run some normality tests and also just look at a histogram to gauge if there is substantial skew or kurtosis.