Mai() - проблем

8 отговора 362 прегледа
#1

Mai() - проблем

Здравейте,

Използвам следния код, за да изпращам е-мейли през PHP:

$res=mail($mail, $subject, $body, "From: $name\r\nReply-To: $mail\r\nContent-type: text/html; charset=windows-1251\r\n");


Проблемът е, че когато пристигне писмото, Subject и From полетета не се визуализират на кирилица. Иначе самото съдържание на писмото е ОК.

Някакви идеи защо се получава така?

Отговор
в отговор на phpmail #2

Re: Mai() - проблем

къде е това, където не се визуализират (имам впредвид мейл клиента - програма, web базиран мейл и т.н. ?

Отговор
в отговор на Ц++ #3

Re: Mai() - проблем

пробвай с ИСО 8859 1 или 2

Отговор
в отговор на phpmail #4

Re: Mai() - проблем

Content-type хедъра се отнася само за тялото на писмото. Енкодинга на събджекта, а явно и на останалите полета се задава по различен начин - виж в съответните RFC-та.
Пример от моята поща: "за изпита по МС" е кодирано така: =?iso-8859-1?B?5+Ag6Ofv6PLgIO/uIMzR?=

... nothing that happens to Man is ever natural ...
Отговор
в отговор на Ц++ #5

Re: Mai() - проблем

Ами на Opera не се визуализира както трябва.

Отговор
в отговор на Mopдpeд #6

Re: Mai() - проблем

прав си. но само една отметка - Outlook, Outlook Express, Eudora (и някои други) взимат впредвид и encoding на мейла от хедъра при визуализиране на Subject, From и т.н.

но мисля че с твоя коментар много правилно отбелязваш проблема как може да се реши генерално.

Отговор
в отговор на phpmail #7

Re: Mai() - проблем

Аз използвам ето този код за мейли на кирилица:


$subject = "Здравей";

$subject = convert_cyr_string($subject, "w", "w");
$subject = '=?windows-1251?B?' .base64_encode($subject). '?=';


Отговор
в отговор на $burov #8

Re: Mai() - проблем

благодаря за примера!

само да отбележа, че реда
$subject = convert_cyr_string($subject, "w", "w");

в случая нищо не прави (конвертира от win1251 в win1251, т.е. нищо.

Отговор
в отговор на $burov #9

Re: Mai() - проблем

Добре! Това проработи. Благодаря!

Отговор