Создание почтового клиента под Gmail

Aug 05, 2010 14:17

Когда сталкиваешься с какой то новой задачей зачастую сталкиваешься с кучей проблем. Решение их обычно находится поиском. На поиски нужной инфы бывает уходит куча времени. Поэтому я буду для себя делать в ЖЖ некоторые заметки, чтобы в случае повторного возникновения проблемы не тратить на поиски кучу времени.
Для работы с Gmail необходимо подключится:

$pop_conn = fsockopen("ssl://pop.gmail.com", 995, $errno, $errstr, 10);
    if(!$errstr) {
    $data=fgets($pop_conn,1024);
    echo "$data
";}

Для отправки требуется, чтобы в PHP.ini было подключено php_openssl.dll расширение.
Я подключил, перезапустил Denwer и при обращении к php скрипту, который пытается отправить почту через удаленный smtp сервер, выдается ошибка "Порядковый номер 3879 не найден в библиотеке DLL LIBEAY32.dll" (Видимо битый dll).
Решение не пришлось долго искать, я посмотрел что в директории php находится файл libeay32.dll и поменял апачевский libeay32.dll согласившись на замену.
/usr/local/php5/libeay32.dll => /usr/local/apache/bin/libeay32.dll.

Код для авторизации:

$user = 'accaunt@gmail.com';
    $password = 'password';
    $pop_conn = fsockopen("ssl://pop.gmail.com", 995,$errno, $errstr, 10);
    if(!$errstr) {
        $data=fgets($pop_conn,1024);
        echo "$data
";

fputs($pop_conn,"USER $user\r\n");
        $data= fgets($pop_conn,1024);
        echo "$data
";
        #
        fputs($pop_conn,"PASS $password\r\n");
        $data= fgets($pop_conn,1024);

if(stristr($data,"ok")) {
            echo "$data
";
            #
            //колво писем
            fputs($pop_conn,"STAT\r\n");
            $data=fgets($pop_conn,1024);
            $data=eregi("^\+OK *([0-9]+)",$data,$cnt);

echo "Писем=$cnt[1]
";

if($cnt[1]>0) {

}
        }
    }

заметки

Previous post Next post
Up