Многие хостинги веб сайтов запрещают отправлять почту через smtp, объясняя тем, что этим злоупотребляют и рассылают спам,. И при этом разрешают отправлять через php функцию mail(). Через нее не получится отправлять спам?
Все публичные почтовые серверы (Яндекс, gmail и пр) и так ограничивают количество отправляемых писем в сутки. Есть ли смысл такого запрета со стороны хостера?
А вы проверяли доходят ли куда-то письма, отправленные через mail() ?
Сама функция может возвращать "успех" и при этом может ничего не происходить в зависимости от настроек сервера.
Почту, отправленную через mail(), можно пропустить через собственный спам фильтр. А через 25-й порт можно подключаться напрямую к SMTP серверу получателя и отправлять почту без авторизации. Отсюда вполне логичный вывод, что 25-й порт лучше прикрыть.
Если хотите отправлять почту по SMTP с авторизацией (со своего ящика на Яндексе), используйте 993-й порт и TLS шифрование.
Такой вопрос назрел из-за того, что на одном бесплатном хостинге были запрещены исходящие соединения, и SMTP соответственно тоже не работал. Затем, на пробном периоде у другого платного хостинга, почта через SMTP тоже не отправлялась, в т.ч. через 993 и 587. Поэтому мне показалось, что большинство shared хостеров полностью блокируют SMTP на любые внешние почтовые серверы.
Вы прояснили ситуацию - написал в техподдержку хостинга. Сказали что должно работать через SSL/TLS, и уже 3 дня разбираются почему таки не работает. Но не стал дожидаться и заказал VDS.
Ограничение на количество отправляемых писем в час имеет смысл, так как можно сильно уменьшить вероятность отправки спама.
mail() - лучше заблокировать.
А smtp не вижу смысла, как тогда той почтой пользоваться для нормальных клиентов хостинга. Еще очень много кто использует smtp для работы с почтой через Outlook или им подобные
Почта отправляется локальный почтовым сервером в случае php-mail - и хостер видит и контроллирует отправку писем. Так что контроль присутствует и в том, и в другом случае.