![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
phpmasters |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
Добрый день, профессионалы!
Весь инет облазил!!! Делаю получение писем pop3 с сервера, а именно нужно подключиться, узнать сколько писем, вытащить все что есть из первого письма, это переменная $answer, включая прикрепленные файлы и правильность перекодирования заголовков письма и самого cодержания (тела) письма. Задача полностью разобрать письмо и вывести эти части на экран в браузере. Нужно сделать помимо того, что есть еще: - Перекодировку Темы письма - Найти и перекодировать Содержание (Тело) письма - Найти и сохранить прикрепленные файлы письма - Подключение к Imap c SSL / TLS - Возможно, что-то еще вывести ... Вот код, с рабочим примером
В БРАУЗЕРЕ ВЫГЛЯДИТ ТАК
Архив рабочего кода Получение писем pop3 с сервера здесь http://iaa.besaba.com/pop3.rar Если у Вас есть лучшее или готовое решение данной задачи, то выкладывайте для общего обозрения, буду рад протестировать. |
||||
|
|||||
DropSQL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
А в чем проблема? парсите протокол и всё будет ОК.
Если вам нужно работать с уже распарсиным текстом, то возмите готовую либу для работы с pop3 или imap... Если у вас есть более конкретный вопрос на который хотите получить ответ, задайте. |
|||
|
||||
phpmasters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
1. Проблема в том, что не знаю какими операторами PHP сделать перекодировку Темы письма их по ходу будет много разных, (utf-8, и т.п.).
Нашол вод столько, перекодировщиков Темы письма
2. Не знаю, как найти и перекодировать Содержание (Тело) письма, бывает оно есть бывает его нет (Content preview:), в чем причина понятия не имею. 3. Про аттачи много читал, т.е. видел куски кода, но как их найти и сохранить в папку на сервер прикрепленные файлы не знаю. 4. По подключению к Imap c SSL / TLS кода рабочего не нашёл, поэтому использую pop3, но это урезает многих почтовых серверов, так как там еще есть SSL / TLS. |
|||
|
||||
DropSQL |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
1)Перекодировать советую с помощью iconv (очень проверенный вариант), кодировку можете узнать в теле письма charset=KOI8-R.
2) Обычно по протоколу приходит 2 копии письма:
и
собственно берете любое которые вам нужно, раскодируете (если требуется, иногда может приходить незакодированное) и выводите пользователю. 3)
таким образом находишь атач, разкодируешь и пишешь в файл. 4) ssl и tsl чаще всего это обычный https подобный (то есть встрено в php, детально как с этим работать можешь посмотреть в том же phpmailer или swiftmailer) |
||||||
|
|||||||
phpmasters |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
1. В том и дело, что у меня не все варианты кодировок есть, а той, что нужно нет.
2. У меня другие значения:
3. У меня во втором письме есть attachment, но его не видно, 4. phpmailer хорош для отправки писем, а чтобы их принимал, такого не видел. |
||||
|
|||||
DropSQL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
1) кодировку очень не правильно определяете и соответственно вероятность угадать и перекодировать ниже чем кажется, тем более что могут проблемы увеличиться, в случае если 3-4 разных кодировки в тексте будет
2) это не пример и не решение, читайте в интернете и протоколе и о mime типах... 3) ну это вы сами решайте, я не знаю что у вас там не видно и почему 4) я сказал посмотреть пример работы с ssl/tsl, а не приемом/отправки писем. http://php.net/manual/en/book.imap.php http://goo.gl/SNthN http://goo.gl/tRlYg https://github.com/Synchro/PHPMailer - поддерживает как pop3 так и smtp swiftmailer, думаю, тоже поддерживает, читай P.S. мне кажется тему нужно перенести из "Для профи" в "Общие вопросы". Это сообщение отредактировал(а) DropSQL - 2.5.2013, 22:25 |
|||
|
||||
phpmasters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
Все что мне нужно это несколько строк кода, только нужного,
а не отсылка в поисковые системы, если б там был этот код, то уже давно б все сделал и Вы об этом даже не узнали. Так как вы пишете, то это явно не профи, а обычный пользователь, профи обычно дают несколько строк кода, и даже без комментариев. Поэтому если, кто знает код или подобное решение, то пишите, так как тема, разровненная в интернете и большинство решений устарели, утратили свою актуальность, а пополнить мало, кто хочет, чтобы было отличное решение по чтению почты на PHP своими руками. ![]() Это сообщение отредактировал(а) phpmasters - 2.5.2013, 22:37 |
|||
|
||||
phpmasters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
Какой функцией найти кодировку письма если их будет больше одной ?
|
|||
|
||||
DropSQL |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
кодировка относится к текстовым участкам письма, например:
соответственно когда определяете нужную часть письма, там и парсите кодировку, например:
Это пример, реально нужно смотреть по коду. http://atmail.com/ - посомтрите этот код, думаю там есть всё что вам нужно и даже более того P.S. если не помог, извините, мне больше не интересна ваша тема Это сообщение отредактировал(а) DropSQL - 3.5.2013, 09:34 |
||||
|
|||||
phpmasters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
А если тут нет charset вообще, то что делать ?
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 1 Всего: 386 |
А сообщения-то тоже нет ![]() А вообще,кодировку нужно брать из явно указанной кодировки текста (ее тут нет), кодировки заголовков (utf-8), кодировки "мейлера" по умолчанию. Для mail.ru обычной кодировкой является utf-8, да и для всех online-мэйлеров. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
phpmasters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
ksnk
Если б была кодировка, сообщение и аттач, то тема бы не выкладывалась на форум. Все что нужно это доработать скрипт и выложить с решением проблемы. а такое общение приводит к тому, что мы уходим от решения и тратим уйму времени на это. Если Вы действительно знаете, как решить задачу, то пишите по теме, как ее решить. ВСЕ ИСХОДНИКИ И ВЫВОД КОДА В БРАУЗЕРЕ УКАЗАНО В ПЕРВОМ СООБЩЕНИИ ТЕМЫ, ТАМ ЕСТЬ АРХИВ, ЧТОБЫ БЫТЬ В КУРСЕ. |
|||
|
||||
DropSQL |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
Или вам пришло пустое письмо, или вы его не правильно получили с сервера (только заголовки, без текста и приложений). Предоставте польное исходное сообщение, сможем подсказать по решению проблемы в ДАННОМ, исключительном, случае. |
||||
|
|||||
phpmasters |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
Дело в том, что на разных серверах по-разному работает этот код,
бывали случаи, когда была только тема письма как в правильной кодировке так и не в правильной, бывали только содержание как в правильной кодировке так и не в правильной Поэтому целого подхода в том, что бы правильно письма отображались пока не нашёл, так как почта может идти с разных ящиков к примеру с: www.gmail.com www.mail.ru www.yandex.ru www.rambler.ru и другие |
|||
|
||||
DropSQL |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.5.2013 Репутация: нет Всего: нет |
http://www.codenet.ru/webmast/pop3.php
LIST, RETR посмотрите на эти комманды и пересмотрите свой код. Код не может работать на разных серверах по разному, раз он работает на разных серверах по разному, значит он не правильно работает вообще. Мой совет всеже смотреть в сторону http://ua1.php.net/imap |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |