Автор Тема: Письмо  (Прочитано 3256 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alan

  • -{ Наблюдатель }-
  • Старожил
  • ****
  • Сообщений: 493
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.krivoyrog.info
Письмо
« : 28 Ноября 2001, 00:55:56 »
Вот простой пример:
файл mail.php
<?
if (@
mail($email"Тема письма"$txt"Подпись")) { echo "Сообщение отправлено без ошибок!"; } else { echo "Сообщение не было отправлено в связи с возникшей ошибкой! Попробуйте написать администратору по адресу <a href=mailto:$email>$email</a>"; }
?>

файл mail.html

- сюда надо
вводить e-mail, куда будем отправлять почту



- текст сообщения.





Простая отправка письма, но как мне сделать чтоб письма приходили в нормальной кодировке?
:: Тот кто поднялся выше, просто полез раньше ::
   

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Евгений aka Razor,

Оффлайн Alan

  • -{ Наблюдатель }-
  • Старожил
  • ****
  • Сообщений: 493
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.krivoyrog.info
Письмо
« Ответ #2 : 28 Ноября 2001, 01:34:47 »
а можно на русском?
:: Тот кто поднялся выше, просто полез раньше ::
   

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Письмо
« Ответ #3 : 28 Ноября 2001, 01:47:09 »
convert_cyr_string - преобразует в кодировку, к-рую тебе надо, из win в кои и т.д.
в mail\'e куча примеров!
если надо в кои-8 (т.к. стандарт) дополняй хеадер строкой
Content-Type: text/html; charset=koi8-r
Евгений aka Razor,

Оффлайн Alan

  • -{ Наблюдатель }-
  • Старожил
  • ****
  • Сообщений: 493
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.krivoyrog.info
Не получается
« Ответ #4 : 29 Ноября 2001, 23:39:27 »
Можете пример написать (полностью) а то что-то не получается :((
:: Тот кто поднялся выше, просто полез раньше ::
   

Оффлайн Alan

  • -{ Наблюдатель }-
  • Старожил
  • ****
  • Сообщений: 493
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.krivoyrog.info
делаю так и не получается
« Ответ #5 : 30 Ноября 2001, 00:20:56 »

<?

$extend_koi8r="\\nContent-Type: text/plain;
charset=\\"
koi8-r\\"\\nContent-Transfer-Encoding: 8bit";
$email_txt=convert_cyr_string($txt,\'w\',\'k\');
$email_subject=convert_cyr_string(@$plain_subject,\'w\',\'k\');
$email_subject="Тема письма";
if(@mail("$email", "$email_subject", $txt, "From: Info
<адрес_отпрвителя>".$extend_koi8r))
{ echo "OK";}
else {echo "NO_OK";}

?>

Всё равно абракадабра приходит :(:(
:: Тот кто поднялся выше, просто полез раньше ::
   

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Письмо
« Ответ #6 : 30 Ноября 2001, 00:36:18 »

  $HTMLmessage
=convert_cyr_string($HTMLmessage,"w","k");
  
$TEXTmessage=convert_cyr_string(strip_tags($HTMLmessage),"w","k");
  
$boundary=md5(time())."\\@".strval(time());
  
// формируем сообщение в формате MIME: будет состоять
  //       из двух частей - HTML-формат и текстовой формат.
  
$body="--$boundary\\r\\nContent-type: text/html; charset=\\"koi-8r\\"\\r\\nContent-Transfer-Encoding: 8bit\\r\\n\\r\\n$HTMLmessage\\r\\n\\r\\n--$boundary\\r\\nContent-type: text/plain; charset=\\"koi-8r\\"\\r\\nContent-Transfer-Encoding: 8bit\\r\\n\\r\\n$HTMLmessage\\r\\n";
  
//Составляем заголовок для письма
  
$header="From: $from\\r\\nMime-Version: 1.0\\r\\nContent-Type: multipart/alternative;\\r\\n boundary=$boundary\\r\\n";
  
mail($from,$subj,$body,$header);

Правда рекомендуется слать в qouted_printable. Для этого в примере 8bit нужно заменить на quoted_printable и вот эти строки так сделать:

$HTMLmessage
=qp_enc(convert_cyr_string($HTMLmessage,"w","k"));
$TEXTmessage=qp_enc(convert_cyr_string(strip_tags($HTMLmessage),"w","k"));

qp_enc() функция для перевода строки в quoted-printable - взял из комментариев на  php.net

function qp_enc($input,$line_max 76)

 
$hex = array(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'A\',\'B\',\'C\',\'D\',\'E\',\'F\'); 
 $lines = preg_split("/(?:\\r\\n|\\r|\\n)/", $input); 
 $eol = "\\r\\n"; 
 $escape = "="; 
 $output = ""; 

 while( list(, $line) = each($lines) )
 { 
   $linlen = strlen($line); 
   $newline = ""; 
   for($i = 0; $i < $linlen; $i++)
   { 
     $c = substr($line, $i, 1); 
     $dec = ord($c); 
     if ( ($dec == 32) && ($i == ($linlen - 1)) )
     { 
 
	
$c = "=20"; 
     }
   elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) )
   {
        $h2 = floor($dec/16); $h1 = floor($dec%16); 
	
$c = $escape.$hex["$h2"].$hex["$h1"]; 
   } 
   if ( (strlen($newline) + strlen($c)) >= $line_max ) 
   {
        $output .= $newline.$escape.$eol; 
	
$newline = ""; 
   } 
   $newline .= $c; 
 } // end of for 
 $output .= $newline.$eol; 
 } 
 return trim($output); 



Вот вроде бы и все :)
Советую сходить на php.net почитать там про mail() - много поучительных примеров.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Alan

  • -{ Наблюдатель }-
  • Старожил
  • ****
  • Сообщений: 493
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.krivoyrog.info
Не получается
« Ответ #7 : 30 Ноября 2001, 08:54:00 »
Я пока не сильно ваще рублю в пхп, но то что написал не получается. Привожу текст скрипта:
.....................................
<?
$HTMLmessage=qp_enc(convert_cyr_string($HTMLmessage,"w","k"));
 
$TEXTmessage=qp_enc(convert_cyr_string(strip_tags($HTMLmessage),"w","k"));
  
$boundary=md5(time())."@".strval(time());
  
// формируем сообщение в формате MIME: будет состоять
  //       из двух частей - HTML-формат и текстовой формат.
  
$body="--$boundary\\r\\nContent-type: text/html; charset=\\"koi-8r\\"\\r\\nContent-Transfer-Encoding: 8bit\\r\\n\\r\\n$HTMLmessage\\r\\n\\r\\n--$boundary\\r\\nContent-type: text/plain; charset=\\"koi-8r\\"\\r\\nContent-Transfer-Encoding: 8bit\\r\\n\\r\\n$HTMLmessage\\r\\n";
  
//Составляем заголовок для письма
  
$header="From: $from\\r\\nMime-Version: 1.0\\r\\nContent-Type: multipart/alternative;\\r\\n boundary=$boundary\\r\\n";
$from="alan";
$subj="Привет";  
$
$body=" Привет всем кому пишу";
mail("alan@alba.dp.ua",$from,$subj,$body,$header);
?>

..............................
Приъходит вот что:*This message was transferred with a trial version of CommuniGate(tm) Pro*
--b401ac3f7c76716130670cfc4a69abd6@1007095722
Content-type: text/html; charset="koi-8r"
Content-Transfer-Encoding: 8bit



--b401ac3f7c76716130670cfc4a69abd6@1007095722
Content-type: text/plain; charset="koi-8r"
Content-Transfer-Encoding: 8bit




оПХБЕР
............................
Ели можно напишите целиком может я чтто-то не туда вставил :)
:: Тот кто поднялся выше, просто полез раньше ::
   

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28