Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не уходят письма
 
 автор: Eugene77   (10.12.2008 в 10:28)   письмо автору
 
 

Подскажите, пожалуста, почему почта не уходит?!

<?php
function toutf($s){
    return 
iconv("windows-1251""utf-8"$s);
}

 
$header "Content-Type: text/html; charset=UTF-8\r\n";
 
$header .= "From: "."=?UTF-8?B?".base64_encode($name_in_utf."<".$service_mail.">\r\n\r\n")."?=";
 
$body  "<h2>Пожалуйста, не отвечайте на это письмо!</h2>";
 
$body .= '</br></br><pre>'.'========================================================='.'</pre></br>';
$thm="Подтверждение заказа";
$thm "=?UTF-8?B?".base64_encode(toutf($thm))."?=";

  
$m mail($email$thmtoutf($body), $header);



?>

  Ответить  
 
 автор: Valick   (10.12.2008 в 10:54)   письмо автору
 
   для: Eugene77   (10.12.2008 в 10:28)
 

Куда не уходит?

  Ответить  
 
 автор: sim5   (10.12.2008 в 10:58)   письмо автору
 
   для: Eugene77   (10.12.2008 в 10:28)
 

$header .= "From: "."=?UTF-8?B?".base64_encode($name_in_utf)."?= <".$service_mail.">, а вот тут разделитель заголовка, и в зависимости от системы либо \r\n, либо \n, закрываем кавычки, точка с запятой.

  Ответить  
 
 автор: Eugene77   (11.12.2008 в 09:01)   письмо автору
 
   для: sim5   (10.12.2008 в 10:58)
 

Нет, так тоже не уходит.

<?php
function toutf($s){
    return 
iconv("windows-1251""utf-8"$s);
}
$name_in_utf=toutf("Некто");

 
$header "Content-Type: text/html; charset=UTF-8\r\n";
 
$header .= "From: "."=?UTF-8?B?".base64_encode($name_in_utf)."?="."<".$service_mail.">\n\n";
 
$body  "<h2>Пожалуйста, не отвечайте на это письмо!</h2>";
 
$body .= '</br></br><pre>'.'========================================================='.'</pre></br>';
$thm="Подтверждение заказа";
$thm "=?UTF-8?B?".base64_encode(toutf($thm))."?=";

  
$m mail($email$thmtoutf($body), $header);

if(
$m) echo "OK";
else echo 
"FAIL";
print_r($m);

?>


возвращает FAIL

  Ответить  
 
 автор: sim5   (11.12.2008 в 09:21)   письмо автору
377 байт
 
   для: Eugene77   (11.12.2008 в 09:01)
 

Не отправляет где? Sendmail на локалке все выполнит, а вот на хосте, то почитайте требования на почту отправляемую, а они касаются зачастую не только сколько одновременно, объем и прочее, но также и требования к заголовкам. Sendmail точно не отправит, если в адресе будут переводы строк, а в остальном... Смотрите результат вашей отправки --> У вас кстати, в одном месте \r\n, в другом \n\n.
И вообще, оформите весь заголовок по человечески, а не кусочками, а то посчитают вашу почту за спам сервисы.

  Ответить  
 
 автор: Eugene77   (11.12.2008 в 09:59)   письмо автору
 
   для: sim5   (10.12.2008 в 10:58)
 

заработало!!!
сбой бы какой-то что ли...

  Ответить  
 
 автор: sim5   (11.12.2008 в 10:11)   письмо автору
 
   для: Eugene77   (11.12.2008 в 09:59)
 

Все таки так отправлять письма, как это делаете вы, это не совсем корректно. Почему вы уверены, что почтовый клиент вашего респондента настроен на прием писем именно HTML формата?

  Ответить  
 
 автор: Trianon   (11.12.2008 в 10:13)   письмо автору
 
   для: sim5   (11.12.2008 в 10:11)
 

>Все таки так отправлять писама, как это делаете вы, это не совсем корректно. Почему вы уверены, что почтовый клиент вашего респондента настроен на прием писем именно HTML формата?

В письме и про html-то не сказано ничего. Формально.

  Ответить  
 
 автор: sim5   (11.12.2008 в 11:14)   письмо автору
 
   для: Trianon   (11.12.2008 в 10:13)
 

Так я и говорю, электронное письмо и письмо написанное гусинным пером, вещи разные. К первому более требовательно надо относиться ;-)

  Ответить  
 
 автор: Trianon   (11.12.2008 в 11:44)   письмо автору
 
   для: sim5   (11.12.2008 в 11:14)
 

Я про то, что клиент на упоминание Content-type имеет полное право наплевать, если MIME-version не указано.
Тип содержимого вне MIME-соглашений - фикция.

  Ответить  
 
 автор: sim5   (11.12.2008 в 12:09)   письмо автору
 
   для: Trianon   (11.12.2008 в 11:44)
 

Вывод - надо читать (Евгению). Я ведь говорил, надо оформить заголовок по-человечески, видимо не хочет (пока ;-)).

  Ответить  
 
 автор: Silentium   (10.12.2008 в 14:05)   письмо автору
 
   для: Eugene77   (10.12.2008 в 10:28)
 

Пардон! А как сюда добавить, чтобы еще и копию слал на другой имэйл?

  Ответить  
 
 автор: sim5   (10.12.2008 в 14:10)   письмо автору
 
   для: Silentium   (10.12.2008 в 14:05)
 

Для этого служат поля Cc и Bсс. Передайте заголовок с одним из этих полей, указав небходимый адрес/адреса.

  Ответить  
 
 автор: kis-kis   (11.12.2008 в 12:22)   письмо автору
 
   для: Eugene77   (10.12.2008 в 10:28)
 


function sendmail($from,$to,$subj,$text) 

  $headers  = "Reply-To: $from\r\n"; 
  $headers .= "From: $from\r\n"; 
  $headers .= "Return-Path: $from\r\n"; 
  $headers .= "Content-Type: text/plain; charset=windows-1251\r\n"; 
  $headers .= "Content-Transfer-Encoding: 8bit\r\n"; 
  $headers .= "MIME-Version: 1.0\r\n"; 
  $subj = $subj; 
  @mail($to,$subj,$text,$headers); 

  Ответить  
 
 автор: sim5   (11.12.2008 в 12:35)   письмо автору
 
   для: kis-kis   (11.12.2008 в 12:22)
 

Вот это \r\n, нужно все таки определять, так как в таком виде, это для Windows. А $subj надо кодировать для русского текста, как впрочем и $from, если это кроме адреса, содержит еще и текст русский.

  Ответить  
 
 автор: kis-kis   (11.12.2008 в 12:37)   письмо автору
 
   для: sim5   (11.12.2008 в 12:35)
 

Это просто рабочий пример, а что вы говорите на счет $subj? Да есть косяк с кодировкой... :)

  Ответить  
 
 автор: sim5   (11.12.2008 в 12:42)   письмо автору
 
   для: kis-kis   (11.12.2008 в 12:37)
 

Как же он может быть рабочим, если "косяк"? :)

  Ответить  
 
 автор: kis-kis   (11.12.2008 в 12:47)   письмо автору
 
   для: sim5   (11.12.2008 в 12:42)
 

Ну... Во всяком случает письма отправляются :)

  Ответить  
 
 автор: sim5   (11.12.2008 в 13:01)   письмо автору
 
   для: kis-kis   (11.12.2008 в 12:47)
 

Вопрос не в том, что они отправляются, вопрос в том, как их увидит ваш получатель.

  Ответить  
 
 автор: kis-kis   (11.12.2008 в 17:12)   письмо автору
 
   для: sim5   (11.12.2008 в 13:01)
 

-

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования