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

Статус
В этой теме нельзя размещать новые ответы.

vilyaban

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

Outlook кодировку по умолчанию распознает вот так:
дКЪ ОНРДБЕПФДЕМХЪ ПЕЦХЯРПЮЖХХ НРЙПНИРЕ ЯКЕДСЧЫСЧ ЯЯШКЙС:
 
Не работает. Попробовал три кодировки UTF-8, Koi8-r, Windows-1251

Письмо приходит в кодировке windows-1251, а Outlook кодирует в KOI8-R
 
vilyaban, код письма что приходит посмотри и сюда выложи..

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

возможно у тебя сам контент в непонятной кодировке..
 
<div class="Mail-c-MessageBody"><div class="msgBody"><div id="content" class="plain"><p>Для потдверждения регистрации откройте следующую ссылку: <a href="/r?url=http%3A%2F%2F***.ru%2Fcms%2Fmodules%2Fauth%2Fconfirm.php%3Fid%3D12%26code%3Db85f80a58aae65d22ded7622a6a287f1&amp;ids=1560000000837606868&amp;fs=" target="_blank">http://***.ru/cms/modules/auth/confirm.php?id=12&amp;code=b85f80a58aae65d22ded7622a6a287f1</a><br></p>
</div></div></div>

Письмо получено на ya. Контент в кодировке UTF-8. В ya читается нормально. При переключении на KOI8-R - показывает тоже, что и Outlook.

Свойства письма:
Received: from be72.***.ru ([83.222.23.242]:56 "HELO be72.***.ru"
smtp-auth: <none> TLS-CHIPER: <none> TLS-PEER-CN1: <none>)
by mxfront68.yandex.ru with SMTP id S1737065AbZBHMUq;
Sun, 8 Feb 2009 15:20:46 +0300
X-Yandex-TimeMark: 1234095646
X-Yandex-Spam: 1
X-Yandex-Front: mxfront68
Received-SPF: none (mxfront68: *** is neither permitted nor denied by domain of undeliverable.***.ru; fakespf=pass) client-ip=***; envelope-from=php-sender-***.ru@undeliverable.***.ru; helo=be72.***.ru;, fakespf=pass
Received: (qmail 27595 invoked by uid 2000); 8 Feb 2009 12:20:46 -0000
Date: 8 Feb 2009 12:20:46 -0000
Message-ID: <20090208122046.27594.qmail@be72.***.ru>
To: ***@ya.ru
Subject: Подтверждение регистрации
From: "Кейтеринг" "Консалтинг" - Catering Consulting <admin@***.ru>
Reply-To: "Кейтеринг" "Консалтинг" - Catering Consulting <admin@***.ru>
X-Mailer: PHP/5.2.6

Для потдверждения регистрации откройте следующую ссылку: Для просмотра ссылки Войди или Зарегистрируйся

В Outlooke 2007 кодировка не переключается
 
Идем в "Системные таблицы" -> "Пользователи" -> "Добавление"
Далее смотрим поле "Действие после добавления объекта ", там следующий код:
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-Mailer: PHP/".phpversion());
}
echo "

Если вы знакомы с функцией mail();, то вам не составит труда составить нужный заголовок письма с нужной кодировкой
например такой:
Content-type: text/plain; charset="windows-1251"
From: mail@mail.ru
Subject: subject
Content-type: text/plain; charset="windows-1251"
 
Если вы знакомы с функцией mail();, то вам не составит труда составить нужный заголовок письма с нужной кодировкой
например такой:

И как же это сделать?
 
Синтаксис функции 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 "
 
Добавлено через 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 "

Вот исправленный вариант - все заработало.
 
Спасибо, хорошее решение проблемы. Пригодится
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху