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

Форум PHP

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

 

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

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

тема: Bad parameters to mail() function, mail not sent
 
 автор: shest   (26.05.2008 в 20:48)   письмо автору
 
 

Здравствуйте. Подскажите пожалуйста, почему такой код


                  $subject= "Вопрос с сайта ".$_SERVER['SERVER_NAME'];
                  $from="Администратор";
                   $message="Привет"
                   $message=convert_cyr_string($message,"w","k");
                    $subject=convert_cyr_string($subject,"w","k");
                    $from= convert_cyr_string($from,"w","k");
                 
                  $headers  = "MIME-Version: 1.0\r\n";
                  $headers.= "Content-type: text/html;\r\n";
                  $headers.= "From: $from<admin@".$_SERVER['SERVER_NAME'].">\r\n";
                   Mail(mail@mail.ru, $subject, $message,$headers);
                     


вызывает ошибку
Warning: mail(): Bad parameters to mail() function, mail not sent
PHP4 на сервере
Спасибо

   
 
 автор: cheops   (27.05.2008 в 00:34)   письмо автору
 
   для: shest   (26.05.2008 в 20:48)
 

Заключите e-mail в кавычки
<?php
 mail
("mail@mail.ru"$subject$message,$headers);
?>

   
 
 автор: sim5   (27.05.2008 в 01:41)   письмо автору
 
   для: shest   (26.05.2008 в 20:48)
 

Так русский текст передавать нельзя.

   
 
 автор: BinLaden   (27.05.2008 в 02:32)   письмо автору
 
   для: sim5   (27.05.2008 в 01:41)
 

Функции mail() можно.

   
 
 автор: sim5   (27.05.2008 в 02:35)   письмо автору
 
   для: BinLaden   (27.05.2008 в 02:32)
 

Нет, нельзя - отправьте такое сообщение себе, затем в откройте Outlook. Если еще для тела сообщения можно будет указать кодировку и все сойдет с рук, то вот для темы письма и его автора - нет.

   
 
 автор: BinLaden   (27.05.2008 в 02:45)   письмо автору
 
   для: sim5   (27.05.2008 в 02:35)
 

Если Вы говорите про Outlook, то это уже означает, что письмо дошло, каким бы оно не было.

Тут просто оно не отправляется.

   
 
 автор: sim5   (27.05.2008 в 02:47)   письмо автору
183 байт
 
   для: BinLaden   (27.05.2008 в 02:45)
 

Отправить - это еще не значит прочитать. Вот что получит адресат в письме. Если прочитаете это - я буду не прав.

   
 
 автор: BinLaden   (27.05.2008 в 22:37)   письмо автору
 
   для: sim5   (27.05.2008 в 02:47)
 

> Отправить - это еще не значит прочитать

Насколько я понимаю, Вы говорите о другой проблеме, никак не связанной с текущей.

   
 
 автор: sim5   (28.05.2008 в 06:38)   письмо автору
 
   для: BinLaden   (27.05.2008 в 22:37)
 

Правильно, о другой. Я заметил автору, что так письма в русской кодировке отправлять нельзя - смысла в этом нет.

   
 
 автор: mihdan   (28.05.2008 в 11:30)   письмо автору
 
   для: BinLaden   (27.05.2008 в 02:32)
 

Нет нельзя - вы проверьте сами прежде чем говорить.
Я делал так


<?
$headers
['Subject'] = '=?windows-1251?B?'.base64_encode('Заголовок с русским текстом).'?=';
?>

   
 
 автор: BinLaden   (28.05.2008 в 11:34)   письмо автору
 
   для: mihdan   (28.05.2008 в 11:30)
 

> вы проверьте сами прежде чем говорить.

В том-то и дело, что часто пробовал. Возможно, во всех сервисах, которые я использовал стоит автоопределение кодировки.
Одновременно с этим, я подумал, что sim5 это считает причиной неотправки письма.

   
 
 автор: sim5   (28.05.2008 в 13:13)   письмо автору
56 байт
 
   для: BinLaden   (28.05.2008 в 11:34)
 

Вы можете запустить функцию mail(), указав ей все аргументы пустыми - РНР даже не чихнет в этом случае. И sendmail со спокойной совестью отправит ваше сообщение, но выглядеть оно будет так... То, что автор допустил ошибку в синтаксисе, это не столь страшная ошибка, на нее укажет парсер, а вот то, что отправка письма с кодировкой отличной от английской просходит некорректно, это куда более грубее ошибка. На нее парсер не укажет, а адресат вместо письма получит хлам. Не надейтесь на почтовые серверы, которые будут принимать вашу почту. Кстати, буквально месяца 2-3 назад, mail.ru стал блокировать прием почты, у которой некорректно были оформлены поля заголовков.

   
 
 автор: Shest   (28.05.2008 в 23:07)   письмо автору
 
   для: sim5   (28.05.2008 в 13:13)
 

Суть в том, что этот код отлично отправляет вполне читаемое письмо и без всяких ошибок, а на этом сервере почему-то возникает ошибка. Интересно, какой же из параметров не нравится и почему?

   
 
 автор: sim5   (29.05.2008 в 03:34)   письмо автору
 
   для: Shest   (28.05.2008 в 23:07)
 

На этом, это на каком, и какая ошибка? Что касается "этот код отлично отправляет вполне читаемое письмо", то:
Один мой знакомый держал сайт, который реально располагался в Канаде. С почтой проблем не было. Затем начались проблемы с сайтом, но не связанные с почтой, а с техподдержкой, и все хуже и хуже. Перенес он сайт на "родину". Вот тут и начались проблемы, то адресаты Яши примут не весь что, то Рамблера, а Майл некоторые вообще не принимал, давая ответ, что это вирус и т.п.. Когда он попросил посмотреть в чем проблема, то вскрылось, что отправка почты (оформление отправлений) происходила у него по принципу практически такому же, каким и вы руководствуетесь.
Дело хозяйское, как хотите, так и оформляйте, но помните, что почта отправляется от вас до адресата, не по прямой "кремлевской" линии, и может гулять сутки бог весь где, и чтобы действительно "этот код отлично отправляет вполне читаемое письмо", оформляйте его не по строчке из мануала, а согласно стандартам.

   
 
 автор: AcidTrash   (29.05.2008 в 23:02)   письмо автору
 
   для: shest   (26.05.2008 в 20:48)
 

>$headers.= "Content-type: text/html;\r\n";
Если так надо, задайте $headers.= "Content-type: text/html; charset='Koi-8r'\r\n";

   
Rambler's Top100
вверх

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