受け取った PHP エラー通知に基づいて、2 つの特定の条件を設定できるように、この PHP コードをカスタマイズする方法を見つけようとしています。
<?php
/* connect to yahoo */
$hostname = '{imap.mail.yahoo.com:993/imap/ssl}INBOX';
$username = 'user@yahoo.com';
$password = 'password';
$alerts = imap_alerts()
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to yahoo: ' . $alerts);
if ( $inbox === false ) {
exit ("Can't connect: " . imap_last_error() ."\n");
}
else
{
echo"Logined:";
//do stuff
}
?>
私が達成したいのは:
- IMAP サーバーに接続します。
- ユーザーとパスワードの組み合わせが正しいかどうかを確認し、正しい場合はログインしてください (説明しました)。
- そうでない場合は、「ログイン失敗が多すぎます」という IMAP エラーが表示されます。
- そうだが、Yahoo が認識しない場所からログインしようとしている場合、つまり、以前にそこからログインしたことがない場合は、同じエラーが発生します。
- ユーザー/パスの組み合わせが正しくないか、場所が認識されないかによって、ユーザーを「page1」または「page2」にリダイレクトします。
imap_last_error は、両方のケースで同じエラーを返します。ただし、エラー アラート ( imap_alerts ) は両方のケースで異なり、ここでそれらを区別できます。
ログインしようとして、特定のテキスト文字列を含むエラー通知を受信したときに、そのテキスト文字列を読み取るだけで (エラーをまったく表示しない)、「1」にリダイレクトするように設定するにはどうすればよいですか? 」または「2」?
リダイレクト自体は問題になりません。ここで私をつまずかせているのは差別化です。受信した IMAP 通知をテキスト ファイルにダンプする (または、理想的には、直接読み取る) ことを望みます。また、「文字列 A」または「文字列 B」が含まれているかどうかに応じて、次のスクリプト アクションはいずれかへのリダイレクトになります。ページ 1 またはページ 2。
IMAP 間違ったユーザー/パス コンボ通知:
Notice: 不明: [AUTHORIZATIONFAILED] ユーザー名またはパスワードが正しくありません。
IMAP の不明な場所に関する通知:
注意: 不明: [AUTHORIZATIONFAILED] https://login.yahoo.comでアカウントを確認してください。