Это не проблема кодирования, поэтому я думаю, что "superuser" - лучшее место для публикации этого.

Я пытался отправлять электронную почту с помощью PHP в течение 1 недели, но все еще безуспешно. Моя история до сих пор:

  1. Попытка связаться с моей хостинговой компанией по поводу SMTP-сервера / порта, чтобы добавить мой «php.ini» для отправки почты. Они отвечают, что у меня есть неуправляемый выделенный сервер, что означает, что я либо плачу за их дополнительные услуги, либо ухожу сам.

  2. Пытаясь использовать случайные PHP-скрипты, которые я нашел в Google, я понятия не имею, как они работают, но они всегда оказываются в папках спама, и очень часто даже игнорируются большими почтовыми системами, такими как hotmail (они даже не отображаются в большинстве времена)

  3. Я попробовал класс PHPMailer, который использует SMTP-сервер Google, но по какой-то причине google зависает и блокирует доступ к любой учетной записи gmail, которую я делаю, после того, как я ввел его пароль в сценарии PHP. Я больше не могу использовать эту учетную запись.

  4. У меня остался один вариант размещения собственного SMTP-сервера? Но понятия не имею, как и, кажется, много работы, чтобы сделать .. Мне, вероятно, нужны недели, чтобы узнать, как это работает, прежде чем решить, была ли это хорошая идея или нет.

Почему так сложно отправить простое электронное письмо "Hello World" с помощью PHP бесплатно? Что вы, ребята, можете порекомендовать мне для решения этой проблемы? Должен ли я попытаться разместить свой собственный SMTP-сервер? (У меня есть статический IP и домен com)

2 ответа2

3

Отправка электронной почты через php - это просто ... Я думаю, что ваш вопрос больше о том, как доставлять электронные письма вашим получателям ...

Попробуйте поискать "доставку по электронной почте" и посмотрите этот пост:

https://stackoverflow.com/questions/4960582/help-registration-emails-go-to-spam-inbox

Кроме того, использование авторитетного (платного) сервиса smtp может помочь ... Sendgrid, socketlabs, authsmtp и т.д. (Я использовал все 3)

3
  1. Скриптам PHP не обязательно нужен SMTP-сервер для отправки почты. Вы даже можете отправить электронное письмо "от руки" из командной строки. SMTP был специально разработан для этого.

  2. Письмо может оказаться в папках спама по ряду причин, которые можно более или менее разделить на две категории:

    Фильтрация на основе самой электронной почты

    "Надежное" электронное письмо будет иметь тему, правильные заголовки, быть составными, а не только HTML, содержать минимальное количество текста и избегать больших изображений и некоторых триггерных слов. Точные данные зависят от конфигурации спам-фильтра.

    Это будет частично зависеть от сценария PHP.

    Фильтрация по хосту

    При получении входящей почты многие спам-фильтры проверяют, находится ли IP (или имя хоста или домен отправителя) в черном списке (отметьте здесь) или в белом списке (применимо, например, здесь) в некотором списке в реальном времени, если хосту разрешено отправлять электронные письма из этого домена (SPF) и, если определенному серверу разрешено это делать (DKIM).

  3. Там в последнее время учебник здесь о том , как это сделать.

    Линия

    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
    

    кажется особенно важным, поскольку это не является частью большинства учебных пособий по PHPMailer, и отказ от использования SSL может стать причиной блокировки учетной записи Google.

  4. Если вы размещаете SMTP-сервер на том же компьютере, на котором отправляются письма через PHP, у вас будут точно такие же проблемы.

Почему так сложно отправить простое электронное письмо "Hello World" с помощью PHP бесплатно?

Спам. Многое из этого. Согласно статистике спама Trustwave, почти три из каждых четырех электронных писем являются спамом. Это требует довольно агрессивной фильтрации, чтобы все мы не утонули в спаме.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .