Регистрация с аутентификацией по электронной почте, активировано только 30%?

StackOverflow https://stackoverflow.com/questions/1858344

Вопрос

Я использую PHP и MySQL.И мой сайт во флэш-памяти (полный флэш-сайт)

У меня есть веб-сайт, на котором пользователи могут зарегистрироваться.Процесс регистрации, включая отправку «активационного письма», нажмите ссылку, чтобы активировать учетную запись.

Первые две недели было нормально.Из примерно 2000 пользователей активировано 1800 пользователей.После этого количество активированных пользователей резко падает, примерно до 30%.Пример:Зарегистрировано 1000 пользователей, активировано только 300.

Сначала я обнаружил, что проблема заключается в том, что электронная почта не может быть доступна пользователям ymail, msn и gmail.(Большинство моих подписчиков — Ymail (yahoo), hotmail/msn(live) и gmail (gmail)).Я попробовал зарегистрироваться с помощью ymail и hotmail, но не получил письма с активацией.Я связался с Yahoo и MSN, теперь моя электронная почта может пройти.

Однако моя статистика регистрации все еще показывает, что активированных пользователей всего около 30%, что меня очень смущает.Я связываюсь со своей хостинговой компанией и прошу внести мой IP-адрес в белый список.И они это сделали.

Мне нужен ваш совет/помощь по следующим вопросам:

  • Как проверить, в чем проблема?Письмо не доставлено?Пользователь получил электронное письмо, но не нажал на ссылку активации?

Я использую функцию почты PHP.и это мои заголовки:

  $headers = 'MIME-Version: 1.0' . "\r\n";

  $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

  $headers .= 'From: Admin <\admin@domain.com>' . "\r\n";

  $headers .= 'Return-Receipt-To: Bounce <\bounce@domain.com>' . "\r\n";

  $headers .= 'Reply-To: Admin <\admin@domain.com>' . "\r\n";

  $return_path = "\bounce@domain.com\";

(Я скрываю свое доменное имя и добавляю обратную косую черту в электронные письма, потому что в противном случае электронное письмо здесь не будет отображаться, странно)

Что-то не так с заголовками?

  • Что я могу сделать, чтобы улучшить процесс регистрации/активации регистрации?
Это было полезно?

Решение

Вы должны передать путь возврата в качестве параметра «-f» для функции mail():

mail(
    $this->recipient,
    $subj,
    $this->body,
    $this->compose_headers(),
    '-f ' . Options::obj()->mail->return_path);

Кроме того, для достижения наилучших результатов, если отправляющий сервер имеет общедоступное доменное имя example.com, обратный путь должен быть Something@example.com.

В любом случае вам обязательно следует проверить журналы (/var/log/mail*), чтобы точно знать, что происходит.

Другие советы

Попробуйте использовать Gmail в качестве smtp-сервера вместо почтового сервера, такого как sendmail из домена.Использование Gmail smtp как бы гарантирует, что ваши письма будут отправлены с максимальной надежностью.Кроме того, Gmail не будет рассматриваться как спам, если идентификатор электронной почты не помечен как спам (поэтому попробуйте использовать тот, который безопасен).Чтобы улучшить регистрацию->активацию, лучше всего убедиться, что электронная почта попадает в почтовый ящик пользователя.

В целях безопасности у вас может быть функция, позволяющая пользователю повторно отправлять ссылку активации, если первая по какой-либо причине не удалась.

Если вам неудобно использовать Gmail в качестве SMTP, вы можете зарегистрировать свой домен с помощью приложений Google (но это может потребовать изменений в бизнес-потребностях), и вы можете иметь электронную почту типа admin@domain.com и при этом использовать эффективные SMTP-серверы Gmail.

Существует множество библиотек, таких как phpMAiler, которые позволяют использовать внешние smtp-серверы.Обратите внимание, что все данные через серверы Gmail передаются через SSL или TSL.

Есть ли у вас доступ к файлам журналов почтового сервера, отправляющего регистрационные письма?Любые возвращенные электронные письма обычно вернитесь на отправляющий сервер.Отслеживая файлы журналов, вы можете проверить, какое количество писем (если таковые имеются) все еще возвращаются.

Какой доступ имеют пользователи к вашему веб-сайту без активированного адреса электронной почты?Какие-либо функции отключены?Существуют ли какие-либо стимулы для активации или использования настоящего адреса электронной почты?

В вашем примере не показан заголовок «Дата», который является обязательным полем.По моему опыту, некоторые обработчики почты отклоняют электронные письма, у которых их нет (а некоторые просто добавляют одно с текущей датой). Если в вашем реальном коде его нет, попробуйте добавить его и посмотреть, будет ли это иметь значение.

Найдите RFC2822 для получения информации о том, что требуется,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top