|
|
|
| Подскажите, пожалуста, почему почта не уходит?!
<?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, $thm, toutf($body), $header);
?>
|
| |
|
|
|
|
|
|
|
для: Eugene77
(10.12.2008 в 10:28)
| | Куда не уходит? | |
|
|
|
|
|
|
|
для: Eugene77
(10.12.2008 в 10:28)
| | $header .= "From: "."=?UTF-8?B?".base64_encode($name_in_utf)."?= <".$service_mail.">, а вот тут разделитель заголовка, и в зависимости от системы либо \r\n, либо \n, закрываем кавычки, точка с запятой. | |
|
|
|
|
|
|
|
для: 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, $thm, toutf($body), $header);
if($m) echo "OK";
else echo "FAIL";
print_r($m);
?>
|
возвращает FAIL | |
|
|
|
|
 377 байт |
|
|
для: Eugene77
(11.12.2008 в 09:01)
| | Не отправляет где? Sendmail на локалке все выполнит, а вот на хосте, то почитайте требования на почту отправляемую, а они касаются зачастую не только сколько одновременно, объем и прочее, но также и требования к заголовкам. Sendmail точно не отправит, если в адресе будут переводы строк, а в остальном... Смотрите результат вашей отправки --> У вас кстати, в одном месте \r\n, в другом \n\n.
И вообще, оформите весь заголовок по человечески, а не кусочками, а то посчитают вашу почту за спам сервисы. | |
|
|
|
|
|
|
|
для: sim5
(10.12.2008 в 10:58)
| | заработало!!!
сбой бы какой-то что ли... | |
|
|
|
|
|
|
|
для: Eugene77
(11.12.2008 в 09:59)
| | Все таки так отправлять письма, как это делаете вы, это не совсем корректно. Почему вы уверены, что почтовый клиент вашего респондента настроен на прием писем именно HTML формата? | |
|
|
|
|
|
|
|
для: sim5
(11.12.2008 в 10:11)
| | >Все таки так отправлять писама, как это делаете вы, это не совсем корректно. Почему вы уверены, что почтовый клиент вашего респондента настроен на прием писем именно HTML формата?
В письме и про html-то не сказано ничего. Формально. | |
|
|
|
|
|
|
|
для: Trianon
(11.12.2008 в 10:13)
| | Так я и говорю, электронное письмо и письмо написанное гусинным пером, вещи разные. К первому более требовательно надо относиться ;-) | |
|
|
|
|
|
|
|
для: sim5
(11.12.2008 в 11:14)
| | Я про то, что клиент на упоминание Content-type имеет полное право наплевать, если MIME-version не указано.
Тип содержимого вне MIME-соглашений - фикция. | |
|
|
|
|
|
|
|
для: Trianon
(11.12.2008 в 11:44)
| | Вывод - надо читать (Евгению). Я ведь говорил, надо оформить заголовок по-человечески, видимо не хочет (пока ;-)). | |
|
|
|
|
|
|
|
для: Eugene77
(10.12.2008 в 10:28)
| | Пардон! А как сюда добавить, чтобы еще и копию слал на другой имэйл? | |
|
|
|
|
|
|
|
для: Silentium
(10.12.2008 в 14:05)
| | Для этого служат поля Cc и Bсс. Передайте заголовок с одним из этих полей, указав небходимый адрес/адреса. | |
|
|
|
|
|
|
|
для: 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);
}
|
| |
|
|
|
|
|
|
|
для: kis-kis
(11.12.2008 в 12:22)
| | Вот это \r\n, нужно все таки определять, так как в таком виде, это для Windows. А $subj надо кодировать для русского текста, как впрочем и $from, если это кроме адреса, содержит еще и текст русский. | |
|
|
|
|
|
|
|
для: sim5
(11.12.2008 в 12:35)
| | Это просто рабочий пример, а что вы говорите на счет $subj? Да есть косяк с кодировкой... :) | |
|
|
|
|
|
|
|
для: kis-kis
(11.12.2008 в 12:37)
| | Как же он может быть рабочим, если "косяк"? :) | |
|
|
|
|
|
|
|
для: sim5
(11.12.2008 в 12:42)
| | Ну... Во всяком случает письма отправляются :) | |
|
|
|
|
|
|
|
для: kis-kis
(11.12.2008 в 12:47)
| | Вопрос не в том, что они отправляются, вопрос в том, как их увидит ваш получатель. | |
|
|
|
|
|
|
|
для: sim5
(11.12.2008 в 13:01)
| | - | |
|
|
|