Вопрос: Как парсить почту Украины?

Лучший ответ: Недавно на своём личном трекере посылок тоже обнаружил эту проблему. Там теперь используется какая-то хитрая система с редиректами. 
В итоге решил проще - там есть отслеживание треков из файла (до 200т шт). Я эмулирую отправку файла,  в который записываю все треки, и потом парсером вытягиваю из таблицу нужные значения.
Вот код (php, YII):protected static $apiURL = 'http://services.ukrposhta.com/barcodestatistic/Default.aspx';

    public static function updateTrackingInfo($sendEmail = false) {
        Yii::import('application.lib.simpleHtmlDom.*');

        $packages = Tracking::model()->findAll();
        if (empty($packages)) {
            return;
        }

        $ttns = array();
        $ttnsObj = array();
        foreach ($packages as $package) {
            $ttns[] = $package->tr_num;
            $ttnsObj[$package->tr_num] = $package;
        }

        $result = self::uploadTTNs($ttns);
        
        if(empty($result)){
          return;
        }
        
        $html = new simple_html_dom();
        $html->load($result);
        $rows = $html->find('#ctl00_centerContent_ListBarcodes tr');
        foreach ($rows as $row) {
            $trackNum = trim($row->find('td', 0)->plaintext);
            $package = $ttnsObj[$trackNum];
            if (!empty($trackNum) && !empty($package)) {
                $status = trim($row->find('td', 3)->plaintext);

                if ($status !== $package->last_status) {
                    $package->last_status = $status;
                    $package->last_update = time();
                    $package->notified = 0;
                }
                
                $package->save();
            }
        }        
    }

    public static function uploadTTNs($ttns) {
        if (0 === count($ttns))
            return FALSE;

        $fields = array(
            '__VIEWSTATE' => array(
                'content' => ''
            ),
            'ctl00$centerContent$btnUpload' => array(
                'content' => 'Пошук'
            ),
            'ctl00$centerContent$fileUploadXmlBarcodes' => array(
                'filename' => 'ttn.txt',
                'type' => 'text/plain',
                'content' => implode("\r\n", $ttns)
            ),
        );

        $data = '';
        $delimiter = '-------------' . uniqid();

        foreach ($fields as $name => $field) {
            $data .= "--" . $delimiter . "\r\n";

            $data .= 'Content-Disposition: form-data; name="' . $name . '"';

            if (!empty($field['filename'])) {
                $data.= '; filename="' . $field['filename'] . '"' . "\r\n";
                $data .= 'Content-Type: ' . $field['type'];
            }
            $data .= "\r\n\r\n";

            $data .= $field['content'] . "\r\n";
        }
        $data .= "--" . $delimiter . "--\r\n";

        $handle = curl_init(self::$apiURL);

        $options = array(
            CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)',
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS => $data,
            CURLOPT_HTTPHEADER => array(
                'Content-Type: multipart/form-data; boundary=' . $delimiter,
                'Content-Length: ' . strlen($data))
        );
        curl_setopt_array($handle, $options);

        $result = curl_exec($handle);
        curl_close($handle);

        return $result;
    }

Худший ответ: А вам, для сервиса своего, или для себя?
Почему бы не использовать существующие сервисы?
Я например пользуюсь вот этим: post-tracker.ru
кстати, в новостях трекера: 16.11.2013   
Исправлен парсер Почты Украины 
Вероятно о том же ;)
Можете попробовать к разработчику за советом обратиться, может человек адекватный окажется)