Подтверждение регистрации

Тема в разделе "NetCat", создана пользователем vilyaban, 7 фев 2009.

Статус темы:
Закрыта.
  1. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    Как задать кодировку письма, которое высылается пользователю для подтверждения регистрации?

    Outlook кодировку по умолчанию распознает вот так:
     
  2. fuck0ff

    fuck0ff Постоялец

    Регистр.:
    2 сен 2007
    Сообщения:
    92
    Симпатии:
    50
    в файле языка..

    \admin\lang\Russian.php

     
  3. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    Не работает. Попробовал три кодировки UTF-8, Koi8-r, Windows-1251

    Письмо приходит в кодировке windows-1251, а Outlook кодирует в KOI8-R
     
  4. fuck0ff

    fuck0ff Постоялец

    Регистр.:
    2 сен 2007
    Сообщения:
    92
    Симпатии:
    50
    vilyaban, код письма что приходит посмотри и сюда выложи..

    свойства --> подробно

    возможно у тебя сам контент в непонятной кодировке..
     
  5. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    Письмо получено на ya. Контент в кодировке UTF-8. В ya читается нормально. При переключении на KOI8-R - показывает тоже, что и Outlook.

    Свойства письма:
    В Outlooke 2007 кодировка не переключается
     
  6. s0lo

    s0lo Создатель

    Регистр.:
    24 дек 2006
    Сообщения:
    47
    Симпатии:
    4
    Идем в "Системные таблицы" -> "Пользователи" -> "Добавление"
    Далее смотрим поле "Действие после добавления объекта ", там следующий код:
    PHP:
    Регистрация прошла успешно.";
    if(
    $MODULE_VARS[auth][USER_CONFIRMATION]) {
      mail(
    $UserConfirmationEmail, "Подтверждение регистрации", "Для потдверждения регистрации откройте следующую ссылку$ConfirmationLink", "From".$system_env[SpamFromName]." <".$system_env[SpamFromEmail].">\nReply-To".$system_env[SpamFromName]." <".$system_env[SpamFromEmail].">\nX-MailerPHP/".phpversion());
    }
    echo "
    Если вы знакомы с функцией mail();, то вам не составит труда составить нужный заголовок письма с нужной кодировкой
    например такой:
     
  7. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    И как же это сделать?
     
  8. s0lo

    s0lo Создатель

    Регистр.:
    24 дек 2006
    Сообщения:
    47
    Симпатии:
    4
    Синтаксис функции mail() следующий:
    bool mail(string $to, string $subject, string $msg [, string $header]);
    Соответсвенно код добавления нада поправить примерно так(работоспособность я не проверял:(

    Код:
    Регистрация прошла успешно."; 
    if($MODULE_VARS[auth][USER_CONFIRMATION]) {
    $headermail =   "Content-type: text/plain; charset=\"windows-1251\"";
    $headermail .=  "From: ".$system_env[SpamFromName]." <".$system_env[SpamFromEmail].">";
    $headermail .=  "Subject: Подтверждение регистрации";
    $headermail .=  "Content-type: text/plain; charset=\"windows-1251\"";
     
    mail($UserConfirmationEmail, "Подтверждение регистрации", "Для потдверждения регистрации откройте следующую ссылку: $ConfirmationLink", $headermail); 
    } 
    echo "  
     
    vilyaban нравится это.
  9. vilyaban

    vilyaban Постоялец

    Регистр.:
    8 май 2008
    Сообщения:
    111
    Симпатии:
    1
    Добавлено через 17 минут
    Код:
    Регистрация прошла успешно."; 
    if($MODULE_VARS[auth][USER_CONFIRMATION]) {
     
    mail($UserConfirmationEmail, "Подтверждение регистрации", "Для потдверждения регистрации откройте следующую ссылку: $ConfirmationLink", "From: ".$system_env[SpamFromName]." <".$system_env[SpamFromEmail].">[COLOR="Red"]\nContent-type: text/plain; charset=\"windows-1251\"[/COLOR] \nReply-To: ".$system_env[SpamFromName]." <".$system_env[SpamFromEmail].">\nX-Mailer: PHP/".phpversion()); 
    } 
    echo "
    Вот исправленный вариант - все заработало.
     
  10. Ksysha

    Ksysha Создатель

    Регистр.:
    5 фев 2009
    Сообщения:
    37
    Симпатии:
    1
    Спасибо, хорошее решение проблемы. Пригодится
     
Статус темы:
Закрыта.