|
|
|
| Такой скрипт:
<?php
$email = 'vasia@mail.ru';
$name = 'Вася';
$to = '=?windows-1251?B?'.base64_encode($name).'?= <'.$email.'>';
$res = mail($to, 'Тема', 'Сообщение');
echo ($res) ? 'OK' : 'Error';
?>
|
Выдает "Error".
Если не кодировать поле TO, а просто писать голый маил, то все нормально.
Подскажите в чем ошибка.
PS: На локальной машине, на Денвере все работает. Загрузил на сервер - неработает. :( | |
|
|
|
|
|
|
|
для: tAleks
(06.08.2009 в 19:48)
| | Example #2 Sending mail with extra headers.
The addition of basic headers, telling the MUA the From and Reply-To addresses:
<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
|
// невнимательно читал вопрос ;)
As such, the to parameter should not be an address in the form of "Something <someone@example.com>". | |
|
|
|
|
|
|
|
для: exp
(06.08.2009 в 21:56)
| | Это не подходит.
Переменная $to, в данном случае содержит простой email. | |
|
|
|
|
|
|
|
для: tAleks
(06.08.2009 в 23:30)
| | извиняюсь, ещё невнимательно скопипастил.
Notes
Note: The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).
Second, the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA in the first place, but are parsed by PHP.
As such, the to parameter should not be an address in the form of "Something <someone@example.com>". The mail command may not parse this properly while talking with the MTA.
С английским не очень , но пишут что в Виндовс вообще всё это криво построено , что-то даже пришлось с помощью php парсить , и не канает в частности добавлять имя к адресу
не то потомучто недопарсили с помощью php, не то виндовс вообще не транспортабельная | |
|
|
|
|
|
|
|
для: exp
(07.08.2009 в 00:04)
| | >Note: The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).
>Second, the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA in the first place, but are parsed by PHP.
>As such, the to parameter should not be an address in the form of "Something <someone@example.com>". The mail command may not parse this properly while talking with the MTA.
>С английским не очень ..
Внимание: У реализации функции mail() в Windows существует несколько отличий от unix-релизации.
Во-первых, она не использует утилит [имеется в виду sendmail] для формирования сообщений, а вместо этого работает напрямую через сокеты, что означает что MTA (агенту передачи почты) следует прослушивать сетевой сокет (который может быть поднят либо на локальном либо на удаленном хосте).
Во-вторых, клиентские заголовки вроде From:, Cc:, Bcc: и Date: не интерпретируются MTA, хотя и анализируются PHP.
| |
|
|
|
|
|
|
|
для: Trianon
(07.08.2009 в 00:27)
| | Честно говоря, нифига не понял.
А делать-то что? Как решить задачу, чтобы в поле "TO" было указано "Фамилия Имя Очтество <email@mail.ru>"? | |
|
|
|
|
|
|
|
для: tAleks
(07.08.2009 в 09:28)
| | Наверное попробовать добавить соответствующее поле в список полей заголовка (4-й параметр) | |
|
|
|
|
|
|
|
для: Trianon
(07.08.2009 в 10:37)
| | Попробовал так:
<?php
$email = 'vasia@mail.ru';
$name = 'Вася';
$to = '=?windows-1251?B?'.base64_encode($name).'?= <'.$email.'>';
$res = mail($email, 'Тема', 'Сообщение', "To: $to");
echo ($res) ? 'OK' : 'Error';
?>
|
Тоже выдает "Error" | |
|
|
|
|
|
|
|
для: tAleks
(07.08.2009 в 10:45)
| | что-то я не понял. А где Date, Mime-version, Content-Type, Content-Transfer-Encoding, From наконец? | |
|
|
|
|
|
|
|
для: Trianon
(07.08.2009 в 11:12)
| | >что-то я не понял. А где Date, Mime-version, Content-Type, Content-Transfer-Encoding, From наконец?
На сколько мне известно, эти заголовки не являются обязательными для того чтобы сообщение было отправлено. Другой вопрос, будет ли оно доставлено. Но этот вопрос меня сейчас не волнует. Не работает именно отправка.
Если в вышеуказаном примере убираем 4 апраметр функции mail() то отправка проходит.
Начальный вопрос заключается в следующем: Как отправить письмо чтобы в поле TO был не просто голый емаил, а "ФИО <email@mail.ru>"; | |
|
|
|
|
|
|
|
для: tAleks
(07.08.2009 в 11:17)
| | Для того чтобы письмо было принято к доставке, уважающие себя почтовые ретрансляторы обычно требуют, чтобы
а) либо письмо отправлялось сервером с доменным почтовым адресом, на который можно прислать ответ (в этом случае помимо вышеупомянутых полей заголовка, должен присутствовать Received ),
б) либо клиент был аутентифицирован сервером доставки, как в случае с mail.ru (и в этом случае требуется прямая сокетная коммуникация по ESMTP)
Но тот сервер (или MTA), который пытаетесь мучать Вы, может иметь собственные представления о том, какие должны быть письма. Возможно, ему и вправду всё это по барабану.
Почему бы не отвергнуть отправку письма, для которого даже первый шаг доставки тоже не проходит?
Ну и наконец, настройки этой самой mail() в php.ini сервера тоже могут желать лучшего... | |
|
|
|
|
|
|
|
для: Trianon
(07.08.2009 в 11:30)
| | Ну так делать-то в конечном итоге что? Я прошу идею подкинуть, как все-таки решить задачу. | |
|
|
|
|
|
|
|
для: tAleks
(07.08.2009 в 11:52)
| | Я уже подкинул.
Формируйте корректное письмо. (пример http://softtime.ru/scripts/mailattach.php )
Если оно не будет приниматься к отправке на сервере хостинга - жалуйтесь хостеру. | |
|
|
|
|
|
|
|
для: Trianon
(07.08.2009 в 12:08)
| | Письма отправляются, и даже доходят до поучателя.
Но проблема в том, что при добалении ИМЕНИ В ПОЛЕ КОМУ, письма не отправляются.
Поэтому корректность письма, тут по-моему не причем.
А этот пример http://softtime.ru/scripts/mailattach.php тоже с голым мылом в поле Кому. | |
|
|
|
|
|
|
|
для: tAleks
(07.08.2009 в 14:08)
| | Тады значит никак. | |
|
|
|
|
|
|
|
для: Trianon
(07.08.2009 в 11:30)
| | Ну так делать-то в конечном итоге что? Я прошу идею подкинуть, как все-таки решить задачу. | |
|
|
|
|
|
|
|
для: tAleks
(07.08.2009 в 11:52)
| | Беседовать с хостинг провайдером. Должно отправляться. Специально попробовал сам - работает. | |
|
|
|