mail() и sendmail

jah

Новичок
Доброго времени суток
У меня вопрос по работе sendmail
Написал скрипт для отправки мыла под вмл, используя программу sendmail.
Скрипт отсылает письмо, но во первых при получении письма в графе адреса, появляется адресс почтового сервера что то вроде [email protected] а не адрес указанный как from. Как сделать что бы в поле адреса указывался адрес заполненый в форме. Во вторых полученное письмо, имеет нечитабельную кодировку сообщения. Может необходимо делать преобразование текста сообщения из кои8 в кирилицу виндовс, а потом отправлять. Но я ведь указываю кодировку в заголовке письма. Вот фрагмент кода.
$from = $email;
$recipients = "[email protected]"; // мой email
$headers = "\ncontent-type: text/plain; charset=\"utf-8\""; // кодировка письма

$mail = popen("/usr/sbin/sendmail -i -f $from -- $recipients", 'w');
$text_headers = "from: $from\nsubject: $subj".$headers;
fputs($mail, $text_headers);
fputs($mail, "\n");
fputs($mail, $message);
Просьба отвечать только потеме, если есть что сказать.
 

SiMM

Новичок
> полученное письмо, имеет нечитабельную кодировку
> преобразование текста сообщения из кои8 в кирилицу виндовс
> charset="utf-8"
Ты уж разберись для начала с кодировками.
 

jah

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

$from = $email;
$recipients = "[email protected]"; // Ваш email
$headers = "\ncontent-type: text/plain; charset=\"utf-8\""; // кодировка письма

$mail = popen("/usr/sbin/sendmail -i -f $from -- $recipients", 'w');
$text_headers = "from: $from\nsubject: $subj".$headers;
fputs($mail, $text_headers);
fputs($mail, "\n\n");
fputs($mail, $message);

// проверяем на ошибку
$result = pclose($mail) >> 8 & 0xff;
 

rob72

Новичок
а как авторизоваться
helpme
Зайти по протоколу POP3 со своими логином-паролем, после этого тебе в течение какого-то времени будет позволено послать письмо
Но под ДЕНВЕРом это по-моему не прокатит, через сокеты разве что
http://phpclub.ru/detail/article/mail
 

motoMac

Новичок
Автор оригинала: jah
Скрипт отсылает письмо, но во первых при получении письма в графе адреса, появляется адресс почтового сервера что то вроде [email protected] а не адрес указанный как from.
А с этой проблемой через простую функцию mail() как можно справиться?
 

whirlwind

TDD infected, paranoid
>Помоему sendmail и smtp сервер - разные вещи
>тем более в интренете я нашел определение sendmail, оно было примерно таким

А еще в интернете порнуха есть. Места надо знать, где читать.
Sendmail это MTA + MDA, вот в MDA как раз входят различные протоколы, чем является и SMTP => sendmail = smtp сервер.

>через простую функцию mail() как можно справиться
Никак. Можно извернуться через php.ini, указав в кач. sendmail путь с аргументами. Но это - затычка. Что бы иметь полный контроль нужно юзать что нибудь более прогрессивное, например PEAR.
 

motoMac

Новичок
whirlwind, спасибо.
Я попробовал прописать в from адрес почты обычный с @ - он нормально отразился без всяких "[email protected]". Но обычные слова не работают

-~{}~ 26.04.06 03:54:

Автор оригинала: whirlwind
Никак. Можно извернуться через php.ini, указав в кач. sendmail путь с аргументами. Но это - затычка. Что бы иметь полный контроль нужно юзать что нибудь более прогрессивное, например PEAR.
Cпасибо.
Я попробовал прописать в from адрес почты обычный с @ - он нормально отразился без всяких "[email protected]". Но обычные слова не работают

-~{}~ 28.04.06 12:28:

jah, этот код не работает у меня. Выдает:
Warning: popen() has been disabled for security reasons in /home/mac/public_html/sms/process.php on line 126

Warning: fputs(): supplied argument is not a valid stream resource in /home/mac/public_html/sms/process.php on line 128

Warning: fputs(): supplied argument is not a valid stream resource in /home/mac/public_html/sms/process.php on line 129

Warning: fputs(): supplied argument is not a valid stream resource in /home/mac/public_html/sms/process.php on line 130

Warning: pclose() has been disabled for security reasons in /home/mac/public_html/sms/process.php on line 132


В чем может быть дело?
 

motoMac

Новичок
ну понятно :)
Но это че, хостера менять надо или можно как-то обойти эту канитель?
 
Сверху