PHPコーディング
メールボックスのメールを読む
2009年03月01日
PHPからメールボックスへ接続して、ボックス内のメールを取得する方法です。
まずはログインです。
接続
$fp = @fsockopen("メールサーバー", "ポートナンバー");
$line = @fgets($fp, 512);
ユーザー認証
@fputs($fp, "USER "."ユーザーID"."\r\n");
$line = @fgets($fp, 512);
@fputs($fp, "PASS "."パスワード"."\r\n");
$line = @fgets($fp, 512);
うまく接続できれば、最後の$lineに【OK】の文字が含まれています。これでログインした状態です。
ボックス内の情報を取得します。
@fputs($fp, "STAT\r\n");
$line = @fgets($fp, 512);
$lineにはステータス、メール数、サイズが半角スペースで区切られて返されます。
list($stat, $mail_num, $size) = explode(' ', $line);
でそれぞれの値が取り出せます。
各々のメールを取得するには、
for($id=1; $id<=$mail_num; $id++){
@fputs($fp, "RETR ".$id."\r\n");
$line = @fgets($fp);
while(!eregi("^\.\r?\n", $line)){
$mail.= fgets($fp, 512);
}
}
$mailにはヘッダもボディも含まれます。
メールをサーバーから削除するには、
@fputs($fp, "DELE "."削除するメールのid"."\r\n");
です。
終了は
@fputs($fp, "QUIT\r\n");
@fclose($fp);
です。
まずはログインです。
接続
$fp = @fsockopen("メールサーバー", "ポートナンバー");
$line = @fgets($fp, 512);
ユーザー認証
@fputs($fp, "USER "."ユーザーID"."\r\n");
$line = @fgets($fp, 512);
@fputs($fp, "PASS "."パスワード"."\r\n");
$line = @fgets($fp, 512);
うまく接続できれば、最後の$lineに【OK】の文字が含まれています。これでログインした状態です。
ボックス内の情報を取得します。
@fputs($fp, "STAT\r\n");
$line = @fgets($fp, 512);
$lineにはステータス、メール数、サイズが半角スペースで区切られて返されます。
list($stat, $mail_num, $size) = explode(' ', $line);
でそれぞれの値が取り出せます。
各々のメールを取得するには、
for($id=1; $id<=$mail_num; $id++){
@fputs($fp, "RETR ".$id."\r\n");
$line = @fgets($fp);
while(!eregi("^\.\r?\n", $line)){
$mail.= fgets($fp, 512);
}
}
$mailにはヘッダもボディも含まれます。
メールをサーバーから削除するには、
@fputs($fp, "DELE "."削除するメールのid"."\r\n");
です。
終了は
@fputs($fp, "QUIT\r\n");
@fclose($fp);
です。
コメント