imap php extension openserver

Чтение почты через IMAP в PHP

В PHP без проблем можно работать с почтой через IMAP, для этого есть все необходимые функции, подробнее на php.net.

Получение писем

Принцип работы следующий:

$imap = imap_open(«адрес», «e-mail», «пароль») – создает подключение к почтовому ящику. Далее, функция imap_search($imap, ‘ALL’) получает массив c индикаторами писем.

ALLВсе сообщения
UNSEENНепрочитанные сообщения
SEENПрочтенные сообщения (установлен флаг seen)
NEWНовые сообщения (впервые появилось в ящике в ходе текущей сессии)
OLDСтарые сообщения
ANSWEREDСообщения с флагом answered (отвеченный)
UNANSWEREDНеотвеченные сообщения
DELETEDУдаленные сообщения
UNDELETEDНе удаленные сообщения
FLAGGEDСообщения с установленным флагом flagged (важное)
RECENTСообщения с флагом recent (недавнее сообщение)
UNFLAGGEDСообщения без установленных флагов
ON «date»Сообщения с датой, равной « date »
BEFORE «date»Сообщения с датой, до « date »
SINCE «date»Сообщения с датой, после « date »
FROM «string»Сообщения в поле From: которых присутствует «string »
TO «string»Сообщения в поле To: которых присутствует «string »
SUBJECT «string»Сообщения, у которых присутствует «string » в поле Subject
BODY «string»Сообщения содержащие «string » в теле
TEXT «string»Сообщения с текстом «string »
KEYWORD «string»Сообщения с ключевым словом «string»
UNKEYWORD «string»Сообщения, не имеющие ключевого слова «string »

Далее массив обрабатывается в цикле, в примере происходит обход по всем письмам.

Установка флагов

seenСообщение прочитано
answeredНа сообщение отправлен ответ
flaggedСообщение отмечено как «важное»
deletedСообщение отмечено как удалённое
draftСообщение отмечено как черновик
recentНедавнее сообщение

Можно установить сразу несколько флагов, разделяя их пробелами.

В примере, письмам, у которых в теме письма есть слово «заявка» устанавливается флаг «важное».

Удаление писем

Источник

Установка IMAP для PHP 5

Windows

Раскомментируйте (уберите перед строкой точку с запятой) extension=php_imap.dll в php.ini, в переменные среды (Пуск → Настройка → Система → Закладка «Дополнительно» → Переменные среды → Блок «Системные переменные» → Переменная Path → Изменить) добавить в конец строки пути к директории PHP — c:\\ext;c:\;, например, c:\php5\ext;c:\php5;.

Unix/Linux

Расширение IMAP требует установки библиотеки с-client. Прочитать информацию об установке c-client на английском языке можно на php.net.

Быстрая установка c-client для FedoraCore/CentOS:

Установка c-client

Переходим в /usr/local

Скачать последнюю версию c-client можно командой:

В зависимости от версии операционной системы требуется та или иная версия c-client. Например, для ОС FedoraCore 4 потребуется версия imap-2006b.tar.Z, загрузим ее:

Список предыдущих версий c-client можно получить по ftp://ftp.cac.washington.edu/imap/old/.

Переходим в директорию:

Для 64-битных ОС необходимо отредактировать Makefile и заменить в нем EXTRACFLAGS= на EXTRACFLAGS=-fPIC

Выполняем для FedoraCore или RedHat:

или выполняем для FreeBSD:

Для других ОС соответственно «make slx», «make lnp», «make lrh» или «make lsu».

Переходим в директорию c-client/

Примечание: вместо imap-2006b указываете наименование директории в соответствии с выбранной версией c-client.

Установка пакета на примере PHP-5.2.17 для FedoraCore/CentOS

Сборка PHP 5

В Unix системе PHP 5 должен быть сконфигурирован с параметром —with-imap[=DIR]
где DIR — директория с установленным c-client.

Для сборки IMAP c поддержкой SSL необходимо добавить —with-imap-ssl

Перейдем в директорию /tmp

Загрузим последнюю версию PHP 5.2.13:

Перейдем в директорию php-5.2.13

Если был собран eAccelerator, то пересобираем его.

Возможные ошибки при конфигурировании PHP

Если при сборке возникает «configure: error: build test failed. Please check the config.log for details.», то смотрим config.log, в конце может быть указана информация: error: ‘U8T_CANONICAL’ undeclared (first use in this function)

Решение: Используется старая версия imap-200Xx, для версий 5.2.x нужно собирать с imapd.2006XXX.TAR.GZ или старше. См. http://bugs.php.net/bug.php?id=40132

Решение: Выполним копирование libc-client.a

Продолжая использовать сайт, вы даете согласие на обработку файлов Cookies и других пользовательских данных на условиях политики обработки cookie-файлов.

Источник

Отправка email в PHP: настройка OpenServer

В этом уроке мы научимся отправлять почту средствами PHP в рамках сервера OpenServer. О том, чем хорош этот сервер и о том, как его установить, я писал в статье «Установка и настройка OpenServer».

Начнем с того, что в PHP отправить email – очень просто. Для этого используется функция mail(). Чтобы отправить письмо нужно указать адрес получателя, тему письма и текст сообщения, а также специальный заголовок From, с указанием отправителя вот так:

Однако, вот незадача – если этот код выполнить на хостинге, то письмо будет отправлено и придёт получателю, а вот если мы используем OpenServer, то по умолчанию все наши письма будут просто записываться в специальный лог-файл. Убедиться в этом вы можете, заглянув во вкладку «Почта» настроек OpenServer.

imap php extension openserver. Смотреть фото imap php extension openserver. Смотреть картинку imap php extension openserver. Картинка про imap php extension openserver. Фото imap php extension openserver

И действительно, перейдя по этому пути, мы увидим наше письмо.

imap php extension openserver. Смотреть фото imap php extension openserver. Смотреть картинку imap php extension openserver. Картинка про imap php extension openserver. Фото imap php extension openserver

Но как же быть, если мы хотим на самом деле отправлять письма? Для этого нам нужен SMTP-сервер. Если кто не знает – электронная почта отправляется по специальному протоколу SMTP, а принимается по протоколу POP3. SMTP-сервер можно поднять самому, привязать к нему свой домен, и использовать свои адреса вроде x@myproject.ru. Мы же в рамках данного урока будем использовать SMTP-сервер Google.

Первым делом вам нужно создать новый аккаунт Google – просто перейдите в режиме инкогнито на https://gmail.com/ и создайте новую учетную запись. Я создал для примера kek777cheburek@gmail.com.

После этого переходим в настройки OpenServer и заполняем поля:

imap php extension openserver. Смотреть фото imap php extension openserver. Смотреть картинку imap php extension openserver. Картинка про imap php extension openserver. Фото imap php extension openserver

После этого жмем кнопку «Сохранить» и перезапускаем сервер.

После чего запускаем скрипт и проверяем свой ящик.

imap php extension openserver. Смотреть фото imap php extension openserver. Смотреть картинку imap php extension openserver. Картинка про imap php extension openserver. Фото imap php extension openserver

Стоит отметить, что данная инструкция является универсальной и данные настройки можно задать не только в OpenServer, но и в любом другом месте, где требуется конфигурация SMTP-сервера.

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

Источник

Почта в OpenServer. Настройка почты и отправка письма по SMTP в OpenServer

imap php extension openserver. Смотреть фото imap php extension openserver. Смотреть картинку imap php extension openserver. Картинка про imap php extension openserver. Фото imap php extension openserver

В этом уроке я покажу вам как настроить почту в OpenServer.

Дело в том, что когда мы тестируем сайт на локальном сервере, и пытаемся отправить письмо через форму обратной связи, то на почту сайта (нужный нам E-Mail) письма не приходят.

Такая же ситуация, когда мы пытаемся реализовать отправку почты в PHP. На реальный Email почта не приходит.

Дело в том, что по умолчанию, настройки OpenServer выставлены так, что все письма сохраняются в папку userdata/temp/email/. Они записываются в специальный лог-файл, который можно открыть обычным блокнотом.

И вот для того, чтобы письма сохранялись не в лог-файл, а отправлялись на нужный нам Email, нужно поменять настройки OpenServer. Давайте я покажу вам, где посмотреть уже отправленные вами письма в OpenServer, и как сделать так, чтобы они отправлялись по SMTP протоколу.

И так обо всем по порядку.

Вот в этом окне нам и нужно будет произвести определенные настройки, чтобы почта, которую мы отправляем в PHP доставлялась на нужный Email.

Как посмотреть отправленные письма в OpenServer

По умолчанию, способ отправки почты у нас выбран «Сохранять письма в папку userdata/temp/email/». Давайте перейдем в эту папку и убедимся в том, что отправленные ранее нами письма находятся именно в ней. Открываем папку программы OpenServer, в ней есть папка userdata, в ней — temp, а в папке temp — находится папка email.

Откройте находящийся там файл с помощью блокнота, и вы убедитесь в том, что отправка писем у вас работает. Просто они не отправляются на указанный в PHP email, а сохраняются вот здесь.

Как настроить отправку почты в OpenServer по SMTP

Чтобы письма реально отправлялись, нам нужно поменять настройки OpenServer. В качестве примера я буду использовать аккаунт Google и соответственно почту Gmail.

Очень важно! Для тестирования и разработки сайтов я рекомендую создать отдельный аккаунт Google (почту).

И так. Заполняем поля во вкладке «Почта» настроек программы OpenServer пошагово:

Кликаем «Сохранить» и в появившемся окне, которое предупреждает нас о том, что сервер будет перезапущен, кликаем ОК.

imap php extension openserver. Смотреть фото imap php extension openserver. Смотреть картинку imap php extension openserver. Картинка про imap php extension openserver. Фото imap php extension openserver

Вроде бы все и письма должны отправляться по SMTP. Но не все так просто.

Мы настроили OpenServer, но не Google аккаунт. А в аккаунте Google по умолчанию, доступ сторонних приложений запрещен и потому письма у вас пока все равно не будут отправляться.

Нам осталась самая малость — настроить аккаунт Google и сейчас я покажу как это сделать.

Настраиваем SMTP сервер от Google

По умолчанию, в Google с целью обеспечить максимальную безопасность аккаунта, доступ сторонних приложений отключен. А также, в настройках пересылки отключен протокол IMAP (доступ к Gmail других приложений по этому протоколу).

Вот о том, как включить доступ других приложений по протоколу IMAP к вашей почте Gmail, а также как разрешить этим приложениям доступ к вашему аккаунту, я сейчас и расскажу пошагово:

Но и это еще не все.

Вот теперь все. Почта в OpenServer полностью настроена и если вы отправите в PHP письмо, то оно будет успешно доставлено на тот Email, который вы укажете.

Видеоурок по данной теме

Вот небольшой пример отправки письма в PHP:

Источник

Описание

Список параметров

The server part, which is enclosed in ‘<' and '>‘, consists of the servers name or ip address, an optional port (prefixed by ‘:’), and an optional protocol specification (prefixed by ‘/’).

The server part is mandatory in all mailbox parameters.

Optional flags for names

FlagDescription
/service= servicemailbox access service, default is «imap»
/user= userremote user name for login on the server
/authuser= userremote authentication user; if specified this is the user name whose password is used (e.g. administrator)
/anonymousremote access as anonymous user
/debugrecord protocol telemetry in application’s debug log
/securedo not transmit a plaintext password over the network
/imap, /imap2, /imap2bis, /imap4, /imap4rev1equivalent to /service=imap
/pop3equivalent to /service=pop3
/nntpequivalent to /service=nntp
/norshdo not use rsh or ssh to establish a preauthenticated IMAP session
/ssluse the Secure Socket Layer to encrypt the session
/validate-certvalidate certificates from TLS/SSL server (this is the default behavior)
/novalidate-certdo not validate certificates from TLS/SSL server, needed if server uses self-signed certificates
/tlsforce use of start-TLS to encrypt the session, and reject connection to servers that do not support it
/notlsdo not do start-TLS to encrypt the session, even with servers that support it
/readonlyrequest read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3)

The password associated with the username

Number of maximum connect attempts

Возвращаемые значения

Returns an IMAP stream on success or FALSE on error.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *