Помощник
|
Email как БД - возможно ли такое? |
toorr2p
|
Сообщение
#1
|
||
|
|
||
|
|||
gaaarfild |
6.5.2010, 7:53;
Ответить: gaaarfild
Сообщение
#2
|
|
Да можно. Только для чего это? В файлах-то проще хранить. они ближе.
|
|
|
toorr2p
|
Сообщение
#3
|
|
Супер!
Да все дело в удобстве, не все юзеры просто в состоянии даже FTP пользоватся и сохранять файлы в нужной кодировке, они там могут все поламать. А я хочу настроит такую штуку - раздать юзерам пароли и форматы письма с контентом, если формат соответствует, то запись добавляеться на модерацию, где я например добавляю к письму определенную пометку (в тексте письма) потом проверяю с пом PHP и если есть вывожу (типо прошла модерацию-значит выводить), а если не соответствует формату, то отправляеться письмо на почту юзера с образцом-формата письма.... Вот такая задумка)) поможите реализовать, уж очень интересно, просто сайт на выделенном серваке и доступ у меня только к FTP нет там никакого PMA а со всякими PuTyy мне неохота ковыряться. А движок сайта не позволит создать такой тип контента как мне нужно. |
|
|
BaCo |
6.5.2010, 15:58;
Ответить: BaCo
Сообщение
#4
|
|
Зачем так загружать сервер? Ведь если 1000 пользователей обратится к вашей странице, вы представляете какую нагрузку вы на хостера положите? Ведь придется юзать сокеты... А там такая морока с ними будет.
|
|
|
toorr2p
|
Сообщение
#5
|
|
Да врятли там даже сотня за сутки будет, мне просто интересно это пощупать, но не знаю как это делаеться, ссокетами пользовался, но вот чтоб именно из почтового ящика письма извлекать неа...
|
|
|
BaCo |
7.5.2010, 15:16;
Ответить: BaCo
Сообщение
#6
|
|
Юзай вот это:
первым делом мы должны подключиться к серверу
<? $pop_conn = fsockopen("pop.bk.ru", 110,$errno, $errstr, 10); //открываем сокет print fgets($pop_conn,1024); //читаем ответ ?> Если все нормально, ответ будет: +OK далее нам необходимо авторизироваться <? fputs($pop_conn,"USER code@codeismy.name\r\n"); //посылаем юзера print fgets($pop_conn,1024); //читаем ответ ?> Ответ: +OK Password required for user code@codeismy.name Вводим пароль с помощью команды PASS <? fputs($pop_conn,"PASS password\r\n"); //посылаем пароль print fgets($pop_conn,1024); ?> Ответ: +OK code@codeismy.name maildrop has 2 messages (8192 octets) В данном ответе говорится, что в ящике 2 письма общим размером 8192 байт. Когда авторизация пройдена и можно получить информацию командой STAT, она покажет сколько писем в ящике и их общий размер <? fputs($pop_conn,"STAT\r\n"); print fgets($pop_conn,1024); ?> получить весь список писем можно командой LIST <? fputs($pop_conn,"LIST\r\n"); print fgets($pop_conn); ?> Покажет такой ответ: +OK 2 messages (8192 octets) 1 6654 2 1372 так же если для команды LIST указать номер письма то можно получить информацию только об этом письме дальше просто приведу список наиболее часто используемых команд TOP - имеет 2 параметра номер письма и число строк из заголовка, на пример TOP 1 10 покажет заголочки и первые 10 строк письма DELE - помечает для удаления письмо RSET - отменяет пометку на удаление RETR - прочесть письмо полностью QUIT - завершение сессии (по окончанию сессии все помеченые на удаления письма удалятся) ну а дальше приведу ряд полезных функций: получение ответа от сервера <? function get_data($pop_conn) { $data=""; while (!feof($pop_conn)) { $buffer = chop(fgets($pop_conn,1024)); $data .= "$buffer\r\n"; //склеиваем строки if(trim($buffer) == ".") break; } return $data; //возвращяем результат } ?> При отправке почты, все не латинские символы в заголовках кодируется, например тема письма может выглядеть так =?windows-1251?B?7/Du4uXw=?= вот такие тексты и будет преобразовывать эта функция <? function decode_mime_string($subject) { $string = $subject; if(($pos = strpos($string,"=?")) === false) return $string; while(!($pos === false)) { $newresult .= substr($string,0,$pos); $string = substr($string,$pos+2,strlen($string)); $intpos = strpos($string,"?"); $charset = substr($string,0,$intpos); $enctype = strtolower(substr($string,$intpos+1,1)); $string = substr($string,$intpos+3,strlen($string)); $endpos = strpos($string,"?="); $mystring = substr($string,0,$endpos); $string = substr($string,$endpos+2,strlen($string)); if($enctype == "q") $mystring = quoted_printable_decode(ereg_replace("_"," ",$mystring)); else if ($enctype == "b") $mystring = base64_decode($mystring); $newresult .= $mystring; $pos = strpos($string,"=?"); } $result = $newresult.$string; if(ereg("koi8", $subject)) $result = convert_cyr_string($result, "k", "w"); if(ereg("KOI8", $subject)) $result = convert_cyr_string($result, "k", "w"); return $result; } ?> перекодировщик тела письма. Само письмо может быть закодировано и данная функция приводит тело письма в нормальный вид. Так же и вложенные файлы будут перекодироваться этой функцией. <? function compile_bоdу($bоdу,$enctype,$ctype) { $enctype = explode(" ",$enctype); $enctype = $enctype[0]; if(strtolower($enctype) == "base64") $bоdу = base64_decode($bоdу); elseif(strtolower($enctype) == "quoted-printable") $bоdу = quoted_printable_decode($bоdу); if(ereg("koi8", $ctype)) $bоdу = convert_cyr_string($bоdу, "k", "w"); return $bоdу; } ?> Функция для выдергивания метки boundary из заголовка Content-Type boundary это разделитель между разным содержимым в письме, например, чтобы отделить файл от текста письма <? function get_boundary($ctype){ if(preg_match('/boundary[ ]?=[ ]?(["]?.*)/i',$ctype,$regs)) { $boundary = preg_replace('/^\"(.*)\"$/', "\\1", $regs[1]); return trim("--$boundary"); } } ?> Поблагодарили: (0) |
|
|
toorr2p
|
Сообщение
#7
|
|
Ого ничего себе))) спасибо большое, надо разобрать все это дело...
|
|
|
ZiTosS |
12.5.2010, 19:42;
Ответить: ZiTosS
Сообщение
#8
|
|
|
Вячеслав, не понял что ты хочешь? Решил устроить изврат, чтение почты посредством PHP?
Мне кажется задача лишняя, Опиши точнее задачу, что есть, что делает юзер, что делает админ, зачем читать письма на почте?
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Как вы отдыхаете от работы за компом | 151 | adw-kupon.ru | 19792 | Сегодня, 13:52 автор: Vmir |
|
Как вы бросили работу и перешли на заработок с сайтов? | 20 | uahomka | 3424 | Сегодня, 11:54 автор: Skyworker |
|
Как в пушсетках покупают по 100-200 тысяч кликов за день? | 1 | Boymaster | 496 | Сегодня, 11:45 автор: Skyworker |
|
Как вывести деньги в Украине с заблокированного Юмани ? | 30 | freeax | 4995 | 20.4.2024, 16:49 автор: Liudmila |
|
Арбитражники, как ведете учет расходов и доходов? | 13 | Boymaster | 2017 | 20.4.2024, 15:06 автор: Boymaster |
Текстовая версия | Сейчас: 23.4.2024, 16:02 |