phpcurlを使用して私のホールドWebmailに自動的にログインし、すべてのメールを表示します。 これまでのログインは完璧です。 資格情報とCookieでログインしています。PHPcurl:ログイン後にウェブサイトにログインしてデータを取得するHTTP 404リソースが見つかりませんエラー
問題:
ダッシュボードは表示されますが、データは表示されません。
私は何のエラー出力を得るのです。ここではスクリーンショットは、それがどのように見えるかですか?コンソールで
それは言う:ここ
Failed to load resource: the server responded with a status of 404 (Not Found)
私のコンソールのスクリーンショット:私はこれまで使用してくださいどのようなコード
?
//Data
$webmail_login = "http://webmail.licht-austria.at/login.php";
$webmail_mailbox = "http://webmail.licht-austria.at/imp/dynamic.php?page=mailbox";
$login = "";
$password = '';
$postdata = "login_post=1&horde_user=$login&horde_pass=$password&horde_select_view=auto&new_lang=de_DE";
//Curl Login POST
$ch = curl_init();
$agent = $_SERVER["HTTP_USER_AGENT"];
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, $webmail_login);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
$result = curl_exec($ch);
//Until here it works i logged in
//Curl Mailbox GET
curl_setopt($ch, CURLOPT_URL, $webmail_mailbox);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$data = curl_exec($ch);
echo $data;
私のコードがどのように動作しますか?
最初の手順では、自分の認証情報を使用し、POSTを介してWebmailにログインします。 PostDataは正しくありません。私はログインできます。 webmail.at/login.phpが終了したら、私の受信トレイ(webmail.at/imp/dynamic.php?page=mailbox)にリダイレクトされます。 ウェブメールはGETメソッドを使用してすべてのメールと記事を取得します。この時点で私は404エラーを受け取ります。
まず、HTTPを使用してログインする必要がありますか? IMAP/SMTPは良い方法ではありませんか? 2番目のことは、WebメールクライアントはAjaxでデータを送信でき、カールはそれを処理できません。 – jamek
ああよく問題は、私はIMAPについて多くのことを理解しておらず、IMAPの使い方が分かりません。あなたは私にそれを行う方法の例を教えてもらえますか? –
あなたは正しくユーザー名/パスワードをエンコードしません。 '&'またはスペース(名前が2の場合)を持つパスワードは、間違ってエンコードされ、ログインは拒否されます。 urlencode()をチェックアウトする必要があります – hanshenrik