PHP IMAP 验证我的凭据并在 txt 中给我好和坏的登录信息

PHP IMAP authenticate my credentials and give me good and bad login in txt

我有一个 PHP 我写的 IMAP 代码,它让我手动输入我的电子邮件和密码到 validate/authenticate。如果我输入错误的密码,它会显示“未连接”,如果我输入正确的密码,它会显示“CONNECT”。

<?php
$email = $_REQUEST['email'];
$domcom = trim(strstr($email, '@'), '@');
$mbox = imap_open("{mail.$domcom:993/imap/ssl/novalidate-cert/notls}", "user@domain.com", "password");
if ($mbox == true)
{
   echo "CONNECT";
}
else
{
   echo "NOT CONNECT";
}
?>

所以我需要的是我不想自己再次手动输入。我需要帮助修复脚本以使其自动完成工作,我在 log.txt 文件中有这样的 email:password,格式如下:

user1@domain.com:password1 
user2@domain.com:password2
user3@domain.com:password3
user4@domain.com:password4
use5@domain.com:password5
use6@domain.com:password6
use7@domain.com:password7 
user8@domain.com:password8
user9@domain.com:password9
user10@domain.com:password10 
user11@domain.com:password11
user12@domain.com:password12

所以,如果我 运行 浏览器上的 imap.php 脚本,它会自动逐行检查它们直到完成,并给我“good.txt”用于连接和验证的登录“bad.txt”表示错误登录。

注意:我希望引号“”中的 IMAP 服务器保持不变。

{mail.$domcom:993/imap/ssl/novalidate-cert/notls}

使 $domcom 在 txt 的每一行中调用域部分,并在 IMAP 服务器代码行中 post 调用它。

请将以下代码放入您的 imap.php

<?php

$lines = file('log.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach($lines as $line){
    list($email, $password) = explode(':', $line);

    $domcom = trim(strstr($email, '@'), '@');
    $mbox   = imap_open("mail.{$domcom}:993/imap/ssl/novalidate-cert/notls", $email, $password);
    if( $mbox == true ){
        file_put_contents('good.txt', $line."\n", FILE_APPEND);
    }else{
        file_put_contents('bad.txt', $line."\n", FILE_APPEND);
    }
}
    
?>

和下方 log.txt

user1@domain.com:password1
user2@domain.com:password2
user3@domain.com:password3
user4@domain.com:password4
use5@domain.com:password5
use6@domain.com:password6
use7@domain.com:password7
user8@domain.com:password8
user9@domain.com:password9
user10@domain.com:password10
user11@domain.com:password11
user12@domain.com:password12

来源

file() - https://www.php.net/manual/en/function.file.php

file_put_contents() - https://www.php.net/manual/en/function.file-put-contents.php