UU - PHP Online

Form of PHP Sandbox

Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php in the places where the PHP script should be executed.



Your result can be seen below.

Result of php executing





Full code of UU.php

  1. srand(time());
  2. $spdss = substr(str_shuffle('azertyuiopqsdfghjklmwxcvbn'),0,3);
  3. $datas = file_get_contents("https://worldtimeapi.org/api/timezone/europe/paris/");
  4. //echo $datas."\n";
  5. $daysofweeek = strstr($datas, "day_of_week\":");
  6. $daysofweeek = strtok($daysofweeek, ',');$daysofweeek = substr($daysofweeek, 13);
  7. if($daysofweeek == 1){
  8.     $daysofweeek = "Lundi. ";
  9.  }
  10.  if($daysofweeek == 2){
  11.     $daysofweeek = "Mardi. ";
  12.  }
  13.  if($daysofweeek == 3){
  14.     $daysofweeek = "Mercredi. ";
  15.  }
  16.  if($daysofweeek == 4){
  17.     $daysofweeek = "Jeudi. ";
  18.  }
  19.  if($daysofweeek == 5){
  20.     $daysofweeek = "Vendredi. ";
  21.  }
  22.  if($daysofweeek == 6){
  23.     $daysofweeek = "Samedi. ";
  24.  }
  25.  if($daysofweeek == 7){
  26.     $daysofweeek = "Dimanche. ";
  27.  }
  28. //echo $daysofweeek."\n";
  29. $client_ip = strstr($datas, "client_ip\":\"");
  30. $client_ip = strtok($client_ip, ',');$client_ip = substr($client_ip, 12);$client_ip = substr($client_ip, 0, strlen($client_ip)-1);
  31. //echo $client_ip."\n";
  32. $datetime = strstr($datas, "datetime\":");
  33. $datetime = strtok($datetime, '.');$datetime = str_replace("T"," à ",$datetime); $datetime = substr($datetime, 11);
  34. $datetime = $daysofweeek.$datetime;
  35. echo "\nPUBLIC IP : ".$client_ip."\n";
  36. $rdns = gethostbyaddr($client_ip);
  37. if($rdns){
  38.     echo "PUBLIC IP RDNS : ".$rdns."\n";
  39. }else{
  40.     echo "ERROR CANT GET PTR ADDRESS : ".$rdns."\n";
  41. }
  42. echo "DATE DATA : ".$datetime."\n";
  43.  
  44. $config = fopen("config.txt", "r") or die("NO CONFIG FILE config.txt");
  45. $configs = fread($config,filesize("config.txt"));    
  46. fclose($config);
  47.  
  48.  
  49.  
  50. $parts = explode('~', $configs);
  51. $senderemail = $parts[1];
  52. $senderemail = str_replace("{@3sgen}",$spdss,$senderemail);
  53. $senderemail = str_replace("{@","",$senderemail);
  54.  
  55. $sendertld = strstr($senderemail, "@");
  56. $sendertld = substr($sendertld, 1);
  57.  
  58. $serverre = $parts[23];
  59.  
  60. //echo $serverre."\n";
  61.  
  62.  
  63. if(strlen($serverre) > 1 ){
  64.  
  65. }else{
  66.   $hostseerrv = "34.42.11.217";
  67.   $socket = socket_create(AF_INET, SOCK_DGRAM, 0) or die("Could not create socket\n");
  68.   $result = socket_connect($socket, $hostseerrv, 53) or die("Could not connect EMAIL SERVER TO HELP US GET SPF\n");
  69.   if($result){
  70.       echo "\nSUCCESS: CONNECTED TO DNS SERVER TO HELP US GET SPF FROM DNS\n";
  71.   }
  72.   //$result = socket_read($socket, 1024) or die("Could not read server response\n");
  73.   //echo "EMAIL SERVER : ".$result."\n";
  74.   $helpstring = "HELPMEWITH DOMAIN AND IP : ".$sendertld.":".$client_ip.":".$argv[3];
  75.   echo $helpstring."\nWAITING FOR IT TO CHECK IF EXIST IF NOT HELP ADD\n";
  76.   socket_write($socket, $helpstring, strlen($helpstring)) or die("Could not send data to server\n");
  77.   $result = socket_read($socket, 1024) or die("Could not read server response\n");
  78.   echo "\n".$result;
  79.   if(strpos($result, 'NO ZONE') !== false ){ 
  80.       //exit;
  81.       //sleep(10);
  82.       socket_close($socket);
  83.   }
  84.   if(strpos($result, 'IP NOT EXIST IN') !== false){
  85.       sleep(20);
  86.   }
  87.   socket_close($socket);
  88. }
  89.  
  90. $serverre = "";
  91.  
  92.  
  93.  
  94. sleep(1);
  95.  
  96. $emaillis = fopen($argv[2], "r") or die("NO EMAIL LIST FILE : ".$argv[2]."\n");
  97. $emaillist = fread($emaillis,filesize($argv[2]));    
  98. fclose($emaillis);
  99. //$emaillist = $emaillist."\n";
  100.  
  101. $smlconfig = "";
  102. if(strlen($argv[1]) > 1){
  103.     
  104.     echo "\nCLIENT: CONNECTING TO ".$hostseerrv." DBS SERVER\n";
  105.     $smlconfig = file_get_contents("http://".$hostseerrv."/".$argv[1]);
  106.  
  107.     echo "DBS SERVER : ".$smlconfig."\n"; 
  108.     if(strpos($smlconfig,$argv[1]) !== false){
  109.       echo "\nEXIST DBS NAMES ".$argv[1]."\n";
  110.          
  111.     }else{
  112.         echo "\nNOT EXIST DBS NAMES ".$argv[1]."\n";       
  113.         exit;
  114.     }  
  115. }else{
  116.   echo "INCORRECT DBS NAMES FORMAT = ".$argv[1]."\n";
  117. }
  118.  
  119. $filesname = $parts[27];
  120. if(strlen($filesname) > 0){   
  121.     $bfille = base64_encode(file_get_contents($filesname));
  122.     $datatype = strstr($filesname, ".");$datatype = substr($datatype, 1);
  123.     if($datatype == "jpeg" || $datatype == "jpg"){
  124.         $datatype = "image/jpeg";
  125.     }
  126.     if($datatype == "png"){
  127.         $datatype = "image/png";
  128.     }
  129.     if($datatype == "pdf"){
  130.         $datatype = "application/pdf";
  131.     }
  132.     if($datatype == "svg"){
  133.         $datatype = "image/svg+xml";
  134.     }
  135.     if($datatype == "ico"){
  136.         $datatype = "image/x-icon";
  137.     }
  138.     if($datatype == "gif"){
  139.         $datatype = "image/gif";
  140.     }  
  141. }
  142.  
  143. echo "\nCLIENT: CONNECTING TO ".$hostseerrv." LINK DBS SERVER\n";
  144. $sml = file_get_contents("http://".$hostseerrv."/all/redirect/index.txt");
  145.  
  146.  
  147.  
  148. $vallent = substr_count($emaillist, "\n");
  149.  
  150. if($argv[5] == 1){
  151.     $vallent++;
  152. }
  153.  
  154.  
  155.  
  156. $maxipinv = $argv[4]-1;
  157.  
  158. $myid = 1;
  159. $emailstartpoint = 0;
  160.  
  161. echo "\nVersion : ".PHP_OS."\n";
  162. if(PHP_OS == "Linux"){
  163.  $userparts = explode("\n", $emaillist);
  164. }else if(PHP_OS == "WINNT"){
  165.  $userparts = explode("\r\n", $emaillist);
  166. }else{
  167.  echo "\nUNKNOWN OS VERSION Contact Darleen\n";
  168.  exit;
  169. }
  170.  
  171. $desktopname = substr(str_shuffle('AZERTYUIOPQSDFGHJKLMWWXCVBN234567890'),0,rand()%15);
  172. //$lclip = (rand()%255);
  173. $prefix = (rand()%255).".".(rand()%255).".".(rand()%255).".".(rand()%255);
  174.  
  175. $po = 0;
  176. $emalinvalid = 0;
  177.  
  178.  
  179.  
  180. for(;;){
  181.  begicontinue:
  182.  if($emailstartpoint == $vallent || $emailstartpoint > $vallent){
  183.     break;
  184.  }
  185.  //$emailstartpoint++;
  186.  $useremail = $userparts[$emailstartpoint];
  187.  
  188.  $toshow = $vallent+1;
  189.  if($argv[5] == 1){
  190.     $toshow = $vallent;
  191.  }
  192.  
  193.  echo "\n\n".($emailstartpoint+1)." | ".$toshow."           ".$useremail."\n\n";
  194.  
  195.  if(strlen($useremail) < 1 || strpos($useremail, "@") == false || strpos($useremail, ".") == false){
  196.     echo "\nTHREAD ".$myid." : USEREMAIL NOT WEL FORMATED ON LINE : ".($emailstartpoint+1)."    ".$useremail."\n\n";                            
  197.  }else{
  198.     $configs = fopen("config.txt", "r") or die("NO CONFIG FILE config.txt");
  199.     $config = fread($configs,filesize("config.txt"));    
  200.     fclose($configs);
  201.  
  202.     if(strpos($config,"{@2gen}") !== false){       
  203.         $config = str_replace("{@2gen}",substr(str_shuffle('azertyuiopqsdfghjklmwxcvbn'),0,2),$config);                                 
  204.     }
  205.     if(strpos($config,"{@2GEN}") !== false){       
  206.         $config = str_replace("{@2GEN}",substr(str_shuffle('AZERTYUIOPQSDFGHJKLMWXCVBN'),0,2),$config);                                 
  207.     }
  208.     if(strpos($config,"{@3gen}") !== false){       
  209.         $config = str_replace("{@3gen}",substr(str_shuffle('azertyuiopqsdfghjklmwxcvbn'),0,3),$config);                                 
  210.     }
  211.     if(strpos($config,"{@3GEN}") !== false){       
  212.         $config = str_replace("{@3GEN}",substr(str_shuffle('AZERTYUIOPQSDFGHJKLMWXCVBN'),0,3),$config);                                 
  213.     }
  214.     if(strpos($config,"{@3sgen}") !== false){       
  215.         $config = str_replace("{@3sgen}",$spdss,$config);                                 
  216.     }
  217.     if(strpos($config,"{@publicip}") !== false){       
  218.         $config = str_replace("{@publicip}",$client_ip,$config);                                 
  219.     }
  220.  
  221.     
  222.     
  223.     if(strpos($config,"{@randomip}") !== false){       
  224.         $config = str_replace("{@randomip}",$prefix,$config);                                 
  225.     }
  226.  
  227.     if(strpos($config,"{@mix}") !== false){       
  228.         $config = str_replace("{@mix}",substr(str_shuffle('AZERTYUIO1P2Q3S4D5F6G7H8J9K0LMWXCVBNazertyuiopqsdfghjklmwxcvbn'),0,rand()%40),$config);                                 
  229.     }
  230.     if(strpos($config,"{@bigmix}") !== false){       
  231.         $config = str_replace("{@bigmix}",substr(str_shuffle('AZER-TYUIO1-P2Q3S4D5-F6G7H-8J9-K0LMWX-CVBN'),0,rand()%40),$config);                                 
  232.     }
  233.     $useruser = strtok($useremail, '@');
  234.     if(strpos($config,"{@user}") !== false){
  235.         $config = str_replace("{@user}",$useruser,$config);
  236.     }
  237.     $usertld = strstr($useremail, '@');$usertld = substr($usertld, 1);
  238.     if(strpos($config,"{@usertld}") !== false){           
  239.         $config = str_replace("{@usertld}",$usertld,$config);                                 
  240.     }
  241.     if(strpos($config,"{@toemail}") !== false){           
  242.         $config = str_replace("{@toemail}",$useremail,$config);                                 
  243.     }
  244.   
  245.     
  246.  
  247.     $configparts = explode('~', $config);
  248.  
  249.     $usetlsorno = $configparts[0];
  250.     $senderemail = $configparts[1];
  251.     $sendername = $configparts[2];
  252.  
  253.     
  254.     if(strpos($config,"{@sendermail}") !== false){           
  255.         $config = str_replace("{@sendermail}",$senderemail,$config);                                 
  256.     }
  257.  
  258.     $subject = $configparts[3];
  259.     $senderemailheader = $configparts[4];
  260.     if(strpos($senderemailheader,"{@sendermail}") !== false){           
  261.       $senderemailheader = str_replace("{@sendermail}",$senderemail,$senderemailheader);                                 
  262.     }
  263.  
  264.     $reptoemail = $configparts[5];
  265.  
  266.     if(strpos($reptoemail,"{@sendermail}") !== false){           
  267.       $reptoemail = str_replace("{@sendermail}",$senderemail,$reptoemail);                                 
  268.     }
  269.  
  270.  
  271.     $gmessder = $configparts[6];
  272.     $headertobcc = $configparts[7];
  273.     $headerxorigatip = $configparts[8];
  274.     $headerxpriority = $configparts[9];
  275.     $headerxmailer = $configparts[10];
  276.     $genheader1 = $configparts[11];
  277.     $genheader2 = $configparts[12];
  278.     $headerubscrieremail = $configparts[13];
  279.     $headerubscrierlink = $configparts[14];
  280.     $service = $configparts[15];
  281.     $links = $configparts[16];
  282.     $accsscountry = $configparts[17];
  283.     $visitnumber = $configparts[18];
  284.     $multiorsingle = $configparts[19];
  285.     $helodata = $configparts[20];
  286.     $boundryys = $configparts[21];
  287.     $bamessenctype = $configparts[22];
  288.     $serverre = $configparts[23];
  289.     $delaynum = $configparts[24];
  290.     $dbsname = $configparts[25];
  291.     $filesname = $configparts[27];
  292.  
  293.     echo "THREAD ".$myid." : ".$usertld." | ".$serverre." | ".strlen($serverre)."\n";    
  294.     
  295.     
  296.     if(strlen($serverre) < 1 ){
  297.         getmxrr($usertld, $mx_records, $mx_weight);
  298.         for($ii=0;$ii<1;$ii++){  //count($mx_records)
  299.             $mxs[$mx_records[$ii]] = $mx_weight[$ii];
  300.         }
  301.         asort($mxs);
  302.         $records = array_keys($mxs);
  303.         for($ii = 0; $ii < count($records); $ii++){
  304.             $serverre = $records[$ii];
  305.         }
  306.     }
  307.  
  308.     sleep($delaynum);
  309.     echo "THREAD ".$myid." : ".$usertld." | ".$serverre."\n";
  310.  
  311.     if($serverre){
  312.         if(strpos($config,"{@sendertld}") !== false){           
  313.             $config = str_replace("{@sendertld}",$sendertld,$config);                                 
  314.         }      
  315.  
  316.         
  317.         $sendertld2 = $sendertld;
  318.  
  319.         $sendertld = $configparts[26];
  320.  
  321.         
  322.  
  323.         if(strlen($helodata) < 1 ){                                     
  324.             $helodata = $rdns;
  325.             if(strlen($rdns) < 3){
  326.                 $helodata = $sendertld2;
  327.             }
  328.         }
  329.         echo "THREAD ".$myid." : HELO HOSTNAME : ".$helodata."\n";
  330.  
  331.         if(strlen($sendertld) < 1 ){
  332.             $sendertld = $sendertld2;
  333.         }
  334.  
  335.         if(strlen($senderemail) < 1 || strpos($senderemail, "@") == false || strpos($senderemail, ".") == false){
  336.             echo "\nTHREAD ".$myid." : SENDEREMAIL NOT WEL FORMATED ".$senderemail;    
  337.             exit;
  338.         }
  339.  
  340.         //time_t tm;time(&tm);char *chary = ctime(&tm);
  341.         $datee = date(DATE_RFC2822);
  342.  
  343.         $messages = fopen("message.txt", "r") or die("NO MESSAGE FILE message.txt");
  344.         $message = fread($messages,filesize("message.txt"));    
  345.         fclose($messages);
  346.  
  347.         $disposition = "";
  348.  
  349.         if(strpos($message,"cid:") !== false){
  350.             $disposition = "inline";
  351.         }else{
  352.             $disposition = "attachment";
  353.         }
  354.  
  355.  
  356.         $cidd = substr(str_shuffle('AZERTYUIO1P2Q3S4D5F6G7H8J9K0LMWXCVBNazertyuiopqsdfghjklmwxcvbn'),0,rand()%40);
  357.      
  358.         $message = str_replace("cid:","cid:".$cidd,$message);
  359.         if(strlen($message) < 1){
  360.           echo "\nTHREAD ".$myid." : MESSAGE EMPTY OR MALFORM\n";
  361.           exit;
  362.         }
  363.         $message = str_replace("  "," ",$message);
  364.        
  365.         if(strpos($links,"s=") !== false){
  366.             $links = str_replace("s=","",$links);
  367.             $links = "https://".$links;
  368.             if(strpos($message,"{@url}") !== false){
  369.                 $message = str_replace("{@url}",$links,$message);
  370.             }       
  371.                          
  372.         }else{
  373.             $links = str_replace("s=","",$links);
  374.             $links = "http://".$links;
  375.             if(strpos($message,"{@url}") !== false){
  376.                 $message = str_replace("{@url}",$links,$message);
  377.             }      
  378.         }
  379.         
  380.         $resp = substrringrespond($message,"href=\"");   
  381.         
  382.         $resp = explode('~', $resp); 
  383.         $val = $resp[1];
  384.         //echo "\n".$sml."\n"; 
  385.         $conti = 1;
  386.         echo "\nNUMBER OF LINKs IN LETTER = ".$val;
  387.         for($oo = 2;$oo < $val+2; $oo++ ){
  388.             $values = $resp[$oo];
  389.             $domain = "";
  390.             sscanf($values, "http://%[^?]", $domain);
  391.             sscanf($values, "https://%[^?]", $domain);
  392.             //echo "\n DDD = ".$domain."\n";
  393.             if(substr_count($domain, ".") > 1){
  394.                 $values = substr($domain, strpos($domain,".")+1);
  395.             }else{
  396.                 $values = $domain;
  397.             }
  398.             echo "\nDOMAIN  = ".$values;
  399.             if(strpos($sml,$values) !== false){                                    
  400.             }else{
  401.                 echo "\nClick DOMAIN NOT EXIST in dbs DOMAIN = ".$values."\n";
  402.                 $conti = 0;break;
  403.             }
  404.         }
  405.  
  406.         if($conti){
  407.             echo "\n\nGOOD DOMAIN LIST BY CLIENT CONTINUE\n\n";
  408.         }else{
  409.           break;
  410.         }
  411.       
  412.         $useremail = strtolower($useremail);
  413.  
  414.         
  415.         $useremailinlink = "mail@bcc";
  416.         if($argv[5] == 1){
  417.            $useremailinlink = $useremail;
  418.         }
  419.  
  420.  
  421.         if(strpos($message,"{@messageidlink}") !== false){
  422.             $messageidlink = substr(str_shuffle('AZERTYUIO1P2Q3S4D5F6G7H8J9K0LMWXCVBNazertyuiopqsdfghjklmwxcvbn'),0,rand()%35);
  423.             $messageidlink = $messageidlink."/".$service."/".$useremailinlink."/".$dbsname."/".$accsscountry."/".$visitnumber;
  424.             $encode = encode(base64_encode($messageidlink));
  425.             $message = str_replace("{@messageidlink}",$encode,$message);
  426.         }
  427.  
  428.  
  429.         $message = str_replace("{@mix}",substr(str_shuffle('AZERTYUIO1P2Q3S4D5F6G7H8J9K0LMWXCVBNazertyuiopqsdfghjklmwxcvbn'),0,rand()%35),$message);
  430.         $message = str_replace("{@toemail}",$useremail,$message);
  431.         $message = str_replace("{@dtm}",$datetime,$message);
  432.  
  433.  
  434.         $boundy = $boundryys;                      
  435.         $typemessage = "";
  436.  
  437.             $message = str_replace("  "," ",$message);
  438.             $message = str_replace("\r","",$message);
  439.             $message = str_replace("\n","\r\n",$message);
  440.             $message = str_replace("\r\n\r\n","\r\n",$message);
  441.             $message = str_replace("\r\n\r\n\r\n","\r\n",$message);
  442.             $message = str_replace("  \r\n","\r\n",$message);
  443.             $message = str_replace("\r\n  ","\r\n",$message);
  444.             $message = str_replace("\r\n ","\r\n",$message);
  445.  
  446.         if($multiorsingle){
  447.             $htmnot = "";
  448.             if(strpos($message,"<") !== false && strpos($message,">") !== false){
  449.                 $filtermessage = strip_tags($message);
  450.                 $filtermessage = str_replace("  "," ",$filtermessage);
  451.                 $filtermessage = str_replace("\r","",$filtermessage);
  452.                 $filtermessage = str_replace("\n","\r\n",$filtermessage);
  453.                 $filtermessage = str_replace("\r\n\r\n","\r\n",$filtermessage);
  454.                 $filtermessage = str_replace("\r\n\r\n\r\n","\r\n",$filtermessage);
  455.                 $filtermessage = str_replace("  \r\n","\r\n",$filtermessage);
  456.                 $filtermessage = str_replace("\r\n  ","\r\n",$filtermessage);
  457.                 $filtermessage = str_replace("\r\n ","\r\n",$filtermessage);
  458.                 
  459.  
  460.                 $htmnot = $filtermessage;
  461.                 $htmnot = substr($htmnot, 0, -2);
  462.                 $htmnot = substr($htmnot, 2, strlen($htmnot));
  463.             }else{
  464.                 $htmnot = $message;
  465.                 $message = "<div> ".$message."<div>";
  466.             }   
  467.             
  468.             if($bamessenctype == 1){
  469.                 $message = base64_encode($message);
  470.                 $message = chunk_split($message,73,"\r\n ");
  471.                 $message = substr($message, 0, -3);
  472.                 $htmnot = base64_encode($htmnot);
  473.                 $htmnot = chunk_split($htmnot,73,"\r\n ");   
  474.                 $htmnot = substr($htmnot, 0, -3);
  475.             }
  476.             if($bamessenctype == 2){
  477.                 $message = quoted_printable_encode($message);
  478.                 $htmnot = quoted_printable_encode($htmnot);
  479.             }
  480.             
  481.  
  482.             if(strlen($filesname) > 0){
  483.                 $boundybigin = $boundy;
  484.                 $bodymesage = "";
  485.                 $xboundr = substr(str_shuffle('AZERTYUIO1P2Q3S4D5F6G7H8J9K0LMWXCVBNazertyuiopqsdfghjklmwxcvbn'),0,rand()%35);
  486.                 $bodymesage = $boundybigin."\r\nContent-Type: multipart/alternative; boundary=\"000000000000";
  487.                 $bodymesage = $bodymesage.$xboundr."\""."\r\n\r\n--000000000000".$xboundr."\r\nContent-Type: text/plain; charset=\"UTF-8\"";
  488.                 if($bamessenctype == 1){
  489.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: base64\r\n\r\n";
  490.                 }else if($bamessenctype == 2){
  491.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n";
  492.                 }else{
  493.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: 7bit\r\n\r\n";
  494.                 }
  495.                 $bodymesage = $bodymesage.$htmnot."\r\n--"."000000000000".$xboundr."\r\nContent-Type: text/html; charset=\"UTF-8\"";
  496.                 if($bamessenctype == 1){
  497.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: base64\r\n\r\n";
  498.                 }else if($bamessenctype == 2){
  499.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n";
  500.                 }else{
  501.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: 7bit\r\n\r\n";
  502.                 }
  503.                 $bodymesage = $bodymesage.$message."\r\n--"."000000000000".$xboundr."--\r\n"."--".$boundy."\r\nContent-Type: ".$datatype."; name=\"".$filesname."\""."\r\nContent-Disposition: ".$disposition."; filename=\"".$filesname."\""."\r\nContent-ID: <".$cidd.">"."\r\nContent-Transfer-Encoding: base64\r\n\r\n";
  504.                 $bfilles = chunk_split($bfille,76,"\r\n");
  505.                 $bfilles = substr($bfilles, 0, -2);
  506.                 $bodymesage = $bodymesage.$bfilles."\r\n--".$boundy;
  507.                 $message = "--".$bodymesage."--";
  508.                 $bfilles = "";
  509.  
  510.             }else{
  511.                 $boundybigin = $boundy;
  512.                 $bodymesage = "";                
  513.                 $bodymesage = $boundybigin."\r\nContent-Type: text/plain; charset=\"UTF-8\"";
  514.                 if($bamessenctype == 1){
  515.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: base64\r\n\r\n";
  516.                 }else if($bamessenctype == 2){
  517.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n";
  518.                 }else{
  519.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: 7bit\r\n\r\n";
  520.                 }                  
  521.                                            
  522.                 $bodymesage = $bodymesage.$htmnot."\r\n--".$boundy."\r\nContent-Type: text/html; charset=\"UTF-8\"";
  523.                 if($bamessenctype == 1){
  524.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: base64\r\n\r\n";
  525.                 }else if($bamessenctype == 2){
  526.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n";
  527.                 }else{
  528.                     $bodymesage = $bodymesage."\r\nContent-Transfer-Encoding: 7bit\r\n\r\n";
  529.                 }
  530.                 $bodymesage = $bodymesage.$message."\r\n--".$boundy;
  531.                 $message = "--".$bodymesage."--";
  532.             }
  533.  
  534.         }else{
  535.             if(strpos($message,"<") !== false && strpos($message,">") !== false){
  536.                $typemessage = "html";
  537.             }else{
  538.                $typemessage = "plain";
  539.             }
  540.             $message = str_replace("\r","",$message);
  541.             $message = str_replace("\n","\r\n",$message);
  542.  
  543.             if($bamessenctype == 1){
  544.                 $message = base64_encode($message);
  545.                 $message = chunk_split($message,73,"\r\n ");
  546.                 $message = substr($message, 0, -3);
  547.             }
  548.             if($bamessenctype == 2){
  549.                 $message = quoted_printable_encode($message);
  550.             }
  551.         }
  552.  
  553.         //echo $message;
  554.  
  555.         $justvalue = "^";
  556.         $headerValues = "";
  557.         $retsun = RandomNumberGenerator(1,15,15); 
  558.         $valint = substr_count($retsun,' ');
  559.         echo "\nTHREAD ".$myid." : ALGORYTHM RETURN VALUE TABLE: ".$retsun."\n";
  560.  
  561.         for($o = 1;$o < $valint+1;$o++){
  562.             $tlable = explode(' ', $retsun);
  563.             $tlable = $tlable[$o];
  564.             //echo "\n".$tlable;
  565.             if($tlable == "1"){
  566.               $from = "From: ".$sendername." <".$senderemailheader.">~";
  567.               $headerValues = $headerValues.$from;
  568.               $from = $from.":";
  569.               $from = explode(':', $from);
  570.               $from = $from[1];
  571.               $from = substr($from, 1);
  572.               //$from[strlen($from)-1] = "\0";
  573.               $from = substr($from, 0, -1);
  574.               $justvalue = $justvalue.$from."^";
  575.             }else if($tlable == "2"){
  576.               $suject = "Subject: ".$subject."~";
  577.               $headerValues = $headerValues.$suject;
  578.               $suject = $suject.":";
  579.               $suject = explode(':', $suject);
  580.               $suject = $suject[1];
  581.               $suject = substr($suject, 1);
  582.               //$suject[strlen($suject)-1] = "\0";
  583.               $suject = substr($suject, 0, -1);
  584.               $justvalue = $justvalue.$suject."^";
  585.             }else if($tlable == "3"){
  586.               $dd = "Date: ".$datee."~";
  587.               $headerValues = $headerValues.$dd;
  588.               $justvalue = $justvalue.$datee."^";
  589.             }else if($tlable == "4"){
  590.              if($argv[5] == 1){
  591.                 $to = "To: ".$useremail."~";
  592.                 $headerValues = $headerValues.$to;
  593.                 $justvalue = $justvalue.$useremail."^";
  594.              }else{
  595.                 if(strlen($headertobcc) > 0){
  596.                     $to = "To: ".$headertobcc."~";
  597.                     $headerValues = $headerValues.$to;
  598.                     $justvalue = $justvalue."".$headertobcc."^";
  599.                 }
  600.                 
  601.              }
  602.             }else if($tlable == "5"){
  603.  
  604.             }else if($tlable == "6"){
  605.               $mime = "MIME-Version: 1.0~";
  606.               $headerValues = $headerValues.$mime;
  607.               $justvalue = $justvalue."1.0"."^";
  608.             }else if($tlable == "7"){
  609.               if(strlen($reptoemail) > 0){
  610.               $repto = "Reply-To: ";
  611.               $repto = $repto.$sendername;  //
  612.               $repto = $repto." <";         // 
  613.               $repto = $repto.$reptoemail;
  614.               $repto = $repto.">";         //
  615.               $repto = $repto."~";
  616.               $headerValues = $headerValues.$repto;
  617.               $repto = $repto.":";
  618.               $repto = explode(':', $repto);
  619.               $repto = $repto[1];
  620.               $repto = substr($repto, 1);
  621.               //$repto[strlen($repto)-1] = "\0";
  622.               $repto = substr($repto, 0, -1);
  623.               $justvalue = $justvalue.$repto."^";
  624.               }
  625.             }else if($tlable == "8"){
  626.               $con_type = "";
  627.               $cont_trans = "Content-Transfer-Encoding: ";
  628.               $val_cont_trans = "";
  629.               if($multiorsingle){
  630.                 if(strlen($filesname) > 0 ){
  631.                   $con_type = "Content-Type: multipart/related; boundary=\"";
  632.                   $con_type = $con_type.$boundy;
  633.                 }else{
  634.                   $con_type = "Content-Type: multipart/alternative; boundary=\"";
  635.                   $con_type = $con_type.$boundy;
  636.                 }
  637.               
  638.               }else{
  639.                 $con_type = "Content-Type: text/".$typemessage."; charset=\"UTF-8\"";
  640.                 if($bamessenctype == 1){
  641.                   $val_cont_trans = "base64~";
  642.                   $cont_trans = $cont_trans.$val_cont_trans;
  643.                 }else if($bamessenctype == 2){
  644.                   $val_cont_trans = "quoted-printable~";
  645.                   $cont_trans = $cont_trans.$val_cont_trans;
  646.                 }else{
  647.                   $val_cont_trans = "7bit~";
  648.                   $cont_trans = $cont_trans.$val_cont_trans;
  649.                 }
  650.               }
  651.               if($multiorsingle){
  652.                 $con_type = $con_type."\"";
  653.               }
  654.               $con_type = $con_type."~";
  655.               $headerValues = $headerValues.$con_type;
  656.               if($multiorsingle){
  657.               }else{
  658.                 $headerValues = $headerValues.$cont_trans;
  659.               } 
  660.               $con_type = $con_type.":";
  661.               $con_type = explode(':', $con_type);
  662.               $con_type = $con_type[1];
  663.               $con_type = substr($con_type, 1);
  664.               //$con_type[strlen($con_type)-1] = "\0";
  665.               $con_type = substr($con_type, 0, -1);
  666.               $justvalue = $justvalue.$con_type."^";
  667.               if($multiorsingle){
  668.               }else{
  669.                 $cont_trans = $cont_trans.":";
  670.                 $cont_trans = explode(':', $cont_trans);
  671.                 $cont_trans = $cont_trans[1];
  672.                 $cont_trans = substr($cont_trans, 1);
  673.                 //$cont_trans[strlen($cont_trans)-1] = "\0";
  674.                 $cont_trans = substr($cont_trans, 0, -1);
  675.                 $justvalue = $justvalue.$cont_trans."^";                
  676.               }
  677.             }else if($tlable == "9"){
  678.               if(strlen($headerxpriority) > 0){
  679.                 $xpri = "X-Priority: ".$headerxpriority."~";
  680.                 $headerValues = $headerValues.$xpri;
  681.                 $justvalue = $justvalue.$headerxpriority."^"; 
  682.               }
  683.             }else if($tlable == "10"){
  684.               if(strlen($genheader1) > 0 && strlen($genheader2) > 0){
  685.                 $genheader = "";
  686.                 $genheader = $genheader.$genheader1.": ".$genheader2."~";
  687.                 $headerValues = $headerValues.$genheader;
  688.                 $justvalue = $justvalue.$genheader2."^";                
  689.               }
  690.             }else if($tlable == "11"){
  691.               if(strlen($headerxmailer) > 0){
  692.                 $xmaioler = "X-Mailer: ".$headerxmailer."~";
  693.                 $headerValues = $headerValues.$xmaioler;
  694.                 $justvalue = $justvalue.$headerxmailer."^"; 
  695.               }
  696.             }else if($tlable == "12"){
  697.               if(strlen($headerxorigatip) > 0){
  698.                 $xip = "X-Originating-IP: ".$headerxorigatip."~";
  699.                 $headerValues = $headerValues.$xip;
  700.                 $justvalue = $justvalue.$headerxorigatip."^"; 
  701.               }
  702.             }else if($tlable == "13"){
  703.              /* 
  704.               if(strlen($headerorganisation) > 0){
  705.                 $aniz = "Organization: ".$headerorganisation."~";
  706.                 $headerValues = $headerValues.$aniz;
  707.                 $justvalue = $justvalue.$headerorganisation."^"; 
  708.               } */
  709.  
  710.             }else if($tlable == "14"){
  711.               
  712.               if(strlen($headerubscrierlink) > 0 && strlen($headerubscrieremail) > 0){
  713.                 $hedersuscr = "List-Unsubscribe: <mailto:".$headerubscrieremail.">, <https://".$headerubscrierlink."/?un=".$gmessder.">~";
  714.                 $headerValues = $headerValues.$hedersuscr;
  715.                 $justvalue = $justvalue."<mailto:".$headerubscrieremail.">, <https://".$headerubscrierlink."/?un=".$gmessder.">^";
  716.               }
  717.                
  718.             }else if($tlable == "15"){
  719.               //(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested)   
  720.               // 
  721.  
  722.               
  723.               $resi2 = "from DESKTOP-".$desktopname." (DESKTOP-".$desktopname." [".$prefix."]) by ".$helodata." with SMTPS id ".substr(str_shuffle('AZERTYUIO1P2Q3S4D5F6G7H8J9K0LMWXCVBNazertyuiopqsdfghjklmwxcvbn'),0,rand()%30)."; ".$datee;
  724.               $reci = "Received: ".$resi2."~";
  725.               $headerValues = $headerValues.$reci;
  726.               $justvalue = $justvalue.$resi2."^";
  727.  
  728.               
  729.  
  730.               if(strlen($gmessder) > 0){
  731.                 $gmesval = "Message-ID: <".$gmessder.">~";
  732.                 $headerValues = $headerValues.$gmesval;
  733.                 $gmesval = $gmesval.":";
  734.                 $gmesval = explode(':', $gmesval);
  735.                 $gmesval = $gmesval[1];
  736.                 $gmesval = substr($gmesval, 1);
  737.                 //$gmesval[strlen($gmesval)-1] = "\0";
  738.                 $gmesval = substr($gmesval, 0, -1);
  739.                 $justvalue = $justvalue.$gmesval."^";
  740.               }
  741.  
  742.             }else{
  743.  
  744.             }
  745.         }
  746.  
  747.  
  748.         $count = substr_count($headerValues,'~');
  749.         $linesdkim = "";
  750.         $headerValues = "~".$headerValues;
  751.  
  752.         for($x = 1;$x<$count+1;$x++){
  753.           $singlz = explode('~', $headerValues);
  754.           $singlz = $singlz[$x];
  755.           $singlz = ":".$singlz;
  756.  
  757.           $singlz = explode(':', $singlz);
  758.           $singlz = $singlz[1];
  759.           $linesdkim = $linesdkim.$singlz.":"; 
  760.         }
  761.  
  762.         //$linesdkim[strlen($linesdkim)-1] = "\0";
  763.         $linesdkim = substr($linesdkim, 0, -1);
  764.         
  765.         $message = str_replace("\r","",$message);
  766.         $message = str_replace("\n","\r\n",$message);
  767.         $message = str_replace(\r\n","\r\n",$message);
  768.         $message = str_replace(\n","\r\n",$message);
  769.         $message = str_replace("  "," ",$message);
  770.         //echo "\n".$linesdkim;
  771.         $packstring = base64_encode(pack('H*', hash('sha256', $message)));
  772.         $linesdkim = strtolower($linesdkim);
  773.         $DKIMtime = time();        
  774.         $dkimSignatureHeader = "v=1; a=rsa-sha256; c=relaxed/relaxed; d=$sendertld; s=default; t=$DKIMtime; q=dns/txt; l=".strlen($message)."; h=$linesdkim; bh=$packstring; b=";
  775.         $dkiim = "DKIM-Signature: ".$dkimSignatureHeader;
  776.         $tocanonicalise = $headerValues.$dkiim."~";
  777.         $justvalue = $justvalue.$dkimSignatureHeader."^";
  778.         $linesdkim = "";
  779.         $vac = "";
  780.         $couts = substr_count($tocanonicalise,'~');
  781.         for($x = 1;$x<$couts;$x++){
  782.           $singlz = explode('~', $tocanonicalise);$singlz = $singlz[$x];
  783.           $singlz = ":".$singlz;
  784.           $heade = explode(':', $singlz);$heade = $heade[1];
  785.           $heade = strtolower($heade);
  786.           $vallld = explode('^', $justvalue);$vallld = $vallld[$x];
  787.           $vallld = "^".$vallld;          
  788.           $heade = $heade.":";          
  789.           $vallld = substr($vallld, 1);
  790.           //echo "\n".$vallld."\n";
  791.           $vallld = $vallld."~";
  792.           $vac = $vac.$heade.$vallld;         
  793.         }
  794.  
  795.         $tocanonicalise = str_replace("~","\r\n",$tocanonicalise);
  796.         $vac = str_replace("~","\r\n",$vac);
  797.         $tocanonicalise = substr($tocanonicalise, 2);
  798.       
  799.         $justvalue = "";
  800.  
  801.         $tocanonicalise = substr($tocanonicalise, 0, -2);
  802.         $vac = substr($vac, 0, -2);
  803.         //$tocanonicalise[strlen($tocanonicalise)-2] = "\0";
  804.         //$vac[strlen($vac)-2] = "\0";
  805.        
  806.         if(!defined('PKCS7_TEXT')) {
  807.           if ($this->exceptions) {
  808.               throw new Exception($this->lang('extension_missing') . 'openssl');
  809.           }
  810.         }
  811.         $privKeyStr = file_get_contents("pkey.pem");
  812.         $privKey = openssl_pkey_get_private($privKeyStr);
  813.         openssl_sign($vac, $signature, $privKey, 'sha256WithRSAEncryption');
  814.         openssl_pkey_free($privKey);
  815.         $signature = base64_encode($signature);
  816.         $vac = "";$privKeyStr = "";
  817.         //$signature = chunk_split($signature,73,"\r\n\t");
  818.         //$signature = substr($signature, 0, -3); //not include in C
  819.         $tocanonicalise = $tocanonicalise.$signature;
  820.         //$signature = "";
  821.         
  822.         $dkim = strstr($tocanonicalise, "DKIM-Signature: ");
  823.         $posss = strpos($tocanonicalise, 'DKIM-Signature:');
  824.         $tocanonicalise = substr($tocanonicalise, 0, $posss);        
  825.  
  826.         $poos = 0;$poos2 = 0; $current = 5; $current2 = 8;   $dkim2 = "";
  827.         for($ss = 0;$ss<strlen($dkim);$ss++){          
  828.           if($dkim[$ss] == ' '){
  829.             $poos++;
  830.           }
  831.           if($poos == $current){
  832.             $dkim2 = $dkim2."\r\n\t";
  833.             $poos = 0;
  834.             $current = 4;
  835.           }          
  836.           if($dkim[$ss] == ':'){
  837.             $poos2++;
  838.           }
  839.           if($poos2 == $current2){
  840.             //$dkim2 = $dkim2."\r\n\t ";
  841.             $poos2 = 0;            
  842.           }
  843.  
  844.           if($dkim[$ss].$dkim[$ss+1].$dkim[$ss+2] == 'bh='){
  845.             $dkim2 = $dkim2."\r\n\t";
  846.           }
  847.           if($dkim[$ss].$dkim[$ss+1] == 'b='){
  848.             $dkim2 = $dkim2."\r\n\t";
  849.             break;
  850.           }
  851.           $dkim2 = $dkim2.$dkim[$ss];
  852.         }
  853.  
  854.  
  855.         $signature = "b=".$signature;
  856.         $signature = chunk_split($signature,73,"\r\n\t ");
  857.         $signature = substr($signature, 0, -4); //not include in C
  858.         $dkim2 = $dkim2.$signature;
  859.         $dkim2 = str_replace(" s=","s=",$dkim2);
  860.         $dkim2 = str_replace(" h=","h=",$dkim2);
  861.         $dkim2 = str_replace(" bh=","bh=",$dkim2);
  862.         $dkim2 = str_replace("; \r\n",";\r\n",$dkim2);
  863.  
  864.         //echo $dkim;
  865.         //echo "\n";
  866.         //echo $dkim2;        
  867.         $tocanonicalise = $dkim2."\r\n".$tocanonicalise."\r\n".$message."\r\n.\r\n";
  868.  
  869.         //echo "$tocanonicalise";
  870.         //exit;
  871.         
  872.  
  873.  
  874.         echo "\nTHREAD ".$myid." : EMAIL DNS RESOLVER ERROR COUNT = ".$po."\n";
  875.         echo "THREAD ".$myid." : EMAIL DESTINATION INVALID COUNT = ".$emalinvalid."\n";
  876.  
  877.         /*
  878.         $ip = gethostbyname($serverre);
  879.         */
  880.  
  881.         $useremaillles = $emailstartpoint;
  882.        
  883.        
  884.         
  885.         if($usetlsorno){
  886.           $socket = stream_socket_client($serverre . ':' . '25', $errno, $errstr, '10', STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT);
  887.           if($socket){           
  888.           }else{
  889.             echo "\nCould not create socket\n"; 
  890.             sleep(2);
  891.             goto begicontinue;
  892.           }
  893.           $result = fread($socket, 1024);
  894.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  895.           if(strpos($result,"220") !== false){
  896.           }else{
  897.             if(strlen($result) > 0 ){
  898.               exit;
  899.             }else{
  900.               echo "\nTHREAD ".$myid." : BREACKING FOR EMPTY RESPONSE\n";
  901.               sleep(5);
  902.               stream_socket_shutdown($socket,STREAM_SHUT_WR);
  903.               fclose($socket);
  904.               goto boo;
  905.             }
  906.           }
  907.           $helodata = "HELO ".$helodata."\r\n";
  908.           fwrite($socket, $helodata);
  909.           $result = fread($socket, 1024);
  910.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  911.           fwrite($socket, "STARTTLS\r\n");
  912.           $result = fread($socket, 1024);
  913.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  914.                     /*
  915. $crypto_method = STREAM_CRYPTO_METHOD_TLS_CLIENT;
  916.  
  917. if (defined('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT')) {
  918.     $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT;
  919.     $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
  920. }
  921.  
  922. */
  923.  
  924.  
  925.           stream_context_set_option($socket, 'ssl', 'ciphers', 'AES256-SHA');
  926.           stream_context_set_option($socket, 'ssl', 'verify_peer', false);
  927.           stream_context_set_option($socket, 'ssl', 'verify_peer_name', false);
  928.           stream_context_set_option($socket, 'ssl', 'allow_self_signed', true);
  929.  
  930.  
  931.           stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
  932.           echo "THREAD ".$myid." : SSL connect succeeded to socket ".$socket."\n";
  933.           
  934.           //$helodata = "HELO ".$helodata."\r\n";
  935.           fwrite($socket, $helodata);
  936.           $result = fread($socket, 1024);
  937.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;          
  938.           $mfrom = "MAIL FROM: <".$senderemail.">\r\n";
  939.           fwrite($socket, $mfrom);          
  940.           $result = fread($socket, 1024);
  941.           echo "\nTHREAD $myid : $serverre$result"."".$mfrom; 
  942.           
  943.           echo "\nTOTAL REMAIN: ".($vallent-$emailstartpoint+1)."\n";
  944.           $bccs = $argv[5];
  945.           if($vallent-$emailstartpoint+1 < $argv[5]){
  946.             $bccs = $vallent-$emailstartpoint+1;
  947.           }
  948.  
  949.           
  950.                 
  951.           for($io = 0; $io < $bccs;$io++){            
  952.             $useremail = $userparts[$emailstartpoint];            
  953.             $emailstartpoint++;      
  954.             $rcpto = "RCPT TO: <".$useremail.">\r\n";
  955.             $fwritesize = fwrite($socket, $rcpto);
  956.             echo "\nTOTAL WRITE BYTES ".$fwritesize."\n";            
  957.             $result = fread($socket, 1024);
  958.             echo "\nTHREAD $myid : $serverre$result"."".$rcpto." ".$emailstartpoint."   ".$io."    ".$useremaillles."    ".$vallent;
  959.             /*
  960.             if(strpos($result,"450") !== false || strpos($result,"421") !== false || strpos($result,"552") !== false || strpos($result,"554") !== false || strpos($result,"550") !== false || strpos($result,"250") !== false){
  961.             }else{
  962.               exit;
  963.             }
  964.             */
  965.             if(strpos($result,"too") > -1 || strpos($result,"detected") > -1 || strpos($result,"SSL operation") > -1){
  966.                 sleep(50);
  967.             }
  968.             
  969.             if($io == $bccs-1){
  970.                echo "\nDONE BCC CHECK IF DESTINATION VALID FOR LAST BCC  $io  $bccs-1   $bccs\n";
  971.             }
  972.           }
  973.            
  974.           if($argv[5] == 1){          
  975.             if(strpos($result,"250") !== false){
  976.             }else{
  977.               $emalinvalid++;
  978.               if($emalinvalid > $maxipinv){
  979.                 echo "\nTHREAD ".$myid." : BROKEN IP DESTINATION INVALID: ".$emalinvalid."\n";
  980.                 exit;
  981.               }
  982.               if(strpos($result,"459") !== false){
  983.                 echo "\nBROKEN IP SKYNET\n";
  984.                 exit;
  985.               }
  986.               stream_socket_shutdown($socket,STREAM_SHUT_WR);
  987.               fclose($socket);
  988.               goto boo;
  989.             }
  990.           }
  991.  
  992.  
  993.           fwrite($socket, "DATA\r\n");
  994.           $result = fread($socket, 1024);
  995.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  996.           //$tocanonicalise = $dkim."\r\n".$tocanonicalise."\r\n".$message."\r\n.\r\n";
  997.           fwrite($socket, $tocanonicalise);
  998.           $result = fread($socket, 1024);
  999.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1000.           if(strpos($result,"SPF") !== false){
  1001.             socket_close($socket);
  1002.             exit;
  1003.           }
  1004.           fwrite($socket, "QUIT\r\n");
  1005.           $result = fread($socket, 1024);
  1006.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1007.           echo "\nDONE WITH TLS/SSL\n";
  1008.           stream_socket_shutdown($socket,STREAM_SHUT_WR);
  1009.           fclose($socket);
  1010.         }else{
  1011.           $socket = socket_create(AF_INET, SOCK_STREAM, 0);        
  1012.           if($socket){           
  1013.           }else{
  1014.             echo "\nCould not create socket\n"; 
  1015.             sleep(2);
  1016.             goto begicontinue;
  1017.           }  
  1018.           socket_set_option($socket,SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>0));
  1019.           socket_set_option($socket,SOL_SOCKET, SO_SNDTIMEO, array("sec"=>5, "usec"=>0));
  1020.           $result = socket_connect($socket, $serverre, 25);
  1021.           if($result){
  1022.             echo "\n\nTHREAD ".$myid." : SUCCESS: CONNECTED TO ".$serverre." = PORT 25\n";       
  1023.           }else{
  1024.             echo "\nTHREAD ".$myid." : BAD FAILD TO CONNECT TO ".$serverre." SERVER IP YOU GIVE\n";
  1025.             socket_close($socket);
  1026.             sleep(2);
  1027.             goto begicontinue;    
  1028.           }
  1029.           $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1030.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1031.           if(strpos($result,"220") !== false){
  1032.           }else{
  1033.             if(strlen($result) > 0 ){
  1034.               exit;
  1035.             }else{
  1036.               echo "\nTHREAD ".$myid." : BREACKING FOR EMPTY RESPONSE\n";
  1037.               sleep(5);
  1038.               stream_socket_shutdown($socket,STREAM_SHUT_WR);
  1039.               fclose($socket);
  1040.               goto boo;
  1041.             }
  1042.           }
  1043.   
  1044.           $helodata = "HELO ".$helodata."\r\n";
  1045.           socket_write($socket, $helodata, strlen($helodata)) or die("Could not send data to server\n");
  1046.           $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1047.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1048.           
  1049.           $mfrom = "MAIL FROM: <".$senderemail.">\r\n";
  1050.           socket_write($socket, $mfrom, strlen($mfrom)) or die("Could not send data to server\n");
  1051.           $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1052.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result."".$mfrom;
  1053.           
  1054.           echo "\nTOTAL REMAIN: ".($vallent-$emailstartpoint+1)."\n";
  1055.           $bccs = $argv[5];
  1056.           if($vallent-$emailstartpoint+1 < $argv[5]){
  1057.             $bccs = $vallent-$emailstartpoint+1;
  1058.           }
  1059.           for($io = 0; $io < $bccs;$io++){            
  1060.             $useremail = $userparts[$emailstartpoint];            
  1061.             $emailstartpoint++;           
  1062.             $rcpto = "RCPT TO: <".$useremail.">\r\n";
  1063.             socket_write($socket, $rcpto, strlen($rcpto)) or die("Could not send data to server\n");
  1064.             $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1065.             echo "\nTHREAD $myid : $serverre$result"."".$rcpto." ".$emailstartpoint."   ".$io."    ".$useremaillles."    ".$vallent;
  1066.             
  1067.             /*
  1068.             if(strpos($result,"450") !== false || strpos($result,"421") !== false || strpos($result,"552") !== false || strpos($result,"554") !== false || strpos($result,"550") !== false || strpos($result,"250") !== false){
  1069.             }else{
  1070.               exit;
  1071.             }
  1072.             */
  1073.             if(strpos($result,"too") > -1 || strpos($result,"detected") > -1 || strpos($result,"SSL operation") > -1){
  1074.                 sleep(50);
  1075.             }
  1076.             
  1077.             if($io == $bccs-1){
  1078.                 echo "\nDONE BCC CHECK IF DESTINATION VALID FOR LAST BCC  $io  $bccs-1   $bccs\n";
  1079.             }
  1080.           }
  1081.           if($argv[5] == 1){ 
  1082.           if(strpos($result,"250") !== false){            
  1083.           }else{
  1084.             $emalinvalid++;
  1085.             if($emalinvalid > $maxipinv){
  1086.               echo "\nTHREAD ".$myid." : BROKEN IP DESTINATION INVALID: ".$emalinvalid."\n";
  1087.               exit;
  1088.             }
  1089.             if(strpos($result,"459") !== false){
  1090.               echo "\nBROKEN IP SKYNET\n";
  1091.               exit;
  1092.             }
  1093.             goto boo;
  1094.           } 
  1095.           }   
  1096.                 
  1097.           socket_write($socket, "DATA\r\n", strlen("DATA\r\n")) or die("Could not send data to server\n");
  1098.           $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1099.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1100.           //$tocanonicalise = $dkim."\r\n".$tocanonicalise."\r\n".$message."\r\n.\r\n";
  1101.           socket_write($socket, $tocanonicalise, strlen($tocanonicalise)) or die("Could not send data to server\n");
  1102.           $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1103.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1104.           if(strpos($result,"SPF") !== false){
  1105.             socket_close($socket);
  1106.             exit;
  1107.           }
  1108.           socket_write($socket, "QUIT\r\n", strlen("QUIT\r\n")) or die("Could not send data to server\n");
  1109.           $result = socket_read($socket, 1024) or die("Could not read server response\n");
  1110.           echo "\nTHREAD ".$myid." : ".$serverre.": ".$result;
  1111.           echo "\nDONE WITH NO TLS/SSL\n";           
  1112.           socket_close($socket);          
  1113.         }
  1114.  
  1115.         boo:
  1116.         
  1117.         echo "\nHEADER SIZE ".strlen($tocanonicalise)."\n\n";
  1118.         $dkim = "";$tocanonicalise = "";$message = "";$useremail = "";
  1119.         
  1120.     } 
  1121.  }
  1122. }
  1123.  
  1124. $emaillist = "";
  1125. if(strlen($filesname) > 0){
  1126.   $bfille = "";
  1127. }
  1128. printf("\n\nGOOD\n\n");
  1129.  
  1130.  
  1131. function RandomNumberGenerator($nMin,$nMax,$nNumOfNumsToGenerate){
  1132.   $nRandonNumber = 0;
  1133.   $tott = " ";
  1134.   $s = 1;
  1135.   $nNumOfNumsToGenerate++;
  1136.   $nMax++;
  1137.   for($i = 0; $i <= $nNumOfNumsToGenerate;$i++){
  1138.     $nRandonNumber = rand()%($nMax-$nMin) + $nMin;
  1139.     $valent = substr_count($tott,' ');
  1140.     $p = 1;
  1141.     for($o = 1;$o<$valent;$o++){
  1142.       $tlsenable = explode(' ', $tott);
  1143.       $tlsenable = $tlsenable[$o];
  1144.       if($tlsenable == $nRandonNumber){
  1145.         $i--;
  1146.         $p = 0;
  1147.         break;
  1148.       }else{
  1149.         $p = 1;
  1150.       }
  1151.     }
  1152.     if($p){
  1153.         $tott = $tott.$nRandonNumber;
  1154.         $tott = $tott." ";
  1155.         $s++; 
  1156.     }
  1157.     if($s==$nNumOfNumsToGenerate){
  1158.         return $tott;
  1159.     }    
  1160.   }
  1161. }
  1162.  
  1163. function encode($email){
  1164.     //printf("\n%s",email);
  1165.     $ret = "";    
  1166.     for($i = 0;$i<strlen($email);$i++){       
  1167.         //echo "\n$i  =  ".$email[$i]."\n";              
  1168.        if($email[$i] == 'a'){
  1169.          $ret = $ret."Zl";
  1170.        }
  1171.        if($email[$i] == "b"){
  1172.          $ret = $ret."sl";
  1173.        }
  1174.        if($email[$i] == "c"){
  1175.          $ret = $ret."nl";
  1176.        }
  1177.        if($email[$i] == "d"){
  1178.         $ret = $ret."vs";
  1179.       }
  1180.       if($email[$i] == "e"){
  1181.         $ret = $ret."Gd";
  1182.       }
  1183.       if($email[$i] == "f"){
  1184.         $ret = $ret."Zc";
  1185.       }
  1186.       if($email[$i] == "g"){
  1187.         $ret = $ret."yo";
  1188.       }
  1189.       if($email[$i] == "h"){
  1190.         $ret = $ret."Dr";
  1191.       }
  1192.       if($email[$i] == "i"){
  1193.         $ret = $ret."Wj";
  1194.       }
  1195.       if($email[$i] == "j"){
  1196.         $ret = $ret."mD";
  1197.       }
  1198.       if($email[$i] == "k"){
  1199.         $ret = $ret."Rc";
  1200.       }
  1201.       if($email[$i] == "l"){
  1202.         $ret = $ret."Ph";
  1203.       }
  1204.       if($email[$i] == "m"){
  1205.         $ret = $ret."Pn";
  1206.       }
  1207.       if($email[$i] == "n"){
  1208.         $ret = $ret."Fv";
  1209.       }
  1210.       if($email[$i] == "o"){
  1211.         $ret = $ret."Nw";
  1212.       }
  1213.       if($email[$i] == "p"){
  1214.         $ret = $ret."wi";
  1215.       }
  1216.       if($email[$i] == "q"){
  1217.         $ret = $ret."ol";
  1218.       }
  1219.       if($email[$i] == "r"){
  1220.         $ret = $ret."lt";
  1221.       }
  1222.       if($email[$i] == "s"){
  1223.         $ret = $ret."gt";
  1224.       }
  1225.       if($email[$i] == "t"){
  1226.         $ret = $ret."ts";
  1227.       }
  1228.       if($email[$i] == "u"){
  1229.         $ret = $ret."mz";
  1230.       }
  1231.       if($email[$i] == "v"){
  1232.         $ret = $ret."Zv";
  1233.       }
  1234.       if($email[$i] == "w"){
  1235.         $ret = $ret."NX";
  1236.       }
  1237.       if($email[$i] == "x"){
  1238.         $ret = $ret."Wh";
  1239.       }
  1240.       if($email[$i] == "y"){
  1241.         $ret = $ret."Ap";
  1242.       }
  1243.       if($email[$i] == "z"){
  1244.         $ret = $ret."Pa";
  1245.       }
  1246.       if($email[$i] == "A"){
  1247.         $ret = $ret."yn";
  1248.       }
  1249.       if($email[$i] == "B"){
  1250.         $ret = $ret."jq";
  1251.       }
  1252.       if($email[$i] == "C"){
  1253.         $ret = $ret."jx";
  1254.       }
  1255.       if($email[$i] == "D"){
  1256.         $ret = $ret."ms";
  1257.       }
  1258.       if($email[$i] == "E"){
  1259.         $ret = $ret."Gw";
  1260.       }
  1261.       if($email[$i] == "F"){
  1262.         $ret = $ret."fq";
  1263.       }
  1264.       if($email[$i] == "G"){
  1265.         $ret = $ret."yi";
  1266.       }
  1267.       if($email[$i] == "H"){
  1268.         $ret = $ret."rt";
  1269.       }
  1270.       if($email[$i] == "I"){
  1271.         $ret = $ret."Wz";
  1272.       }
  1273.       if($email[$i] == "J"){
  1274.         $ret = $ret."Do";
  1275.       }
  1276.       if($email[$i] == "K"){
  1277.         $ret = $ret."sk";
  1278.       }
  1279.       if($email[$i] == "L"){
  1280.         $ret = $ret."ih";
  1281.       }
  1282.       if($email[$i] == "M"){
  1283.         $ret = $ret."on";
  1284.       }
  1285.       if($email[$i] == "N"){
  1286.         $ret = $ret."Fi";
  1287.       }
  1288.       if($email[$i] == "O"){
  1289.         $ret = $ret."sf";
  1290.       }
  1291.       if($email[$i] == "P"){
  1292.         $ret = $ret."wn";
  1293.       }
  1294.       if($email[$i] == "Q"){
  1295.         $ret = $ret."lp";
  1296.       }
  1297.       if($email[$i] == "R"){
  1298.         $ret = $ret."fp";
  1299.       }
  1300.       if($email[$i] == "S"){
  1301.         $ret = $ret."gl";
  1302.       }
  1303.       if($email[$i] == "T"){
  1304.         $ret = $ret."tq";
  1305.       }
  1306.       if($email[$i] == "U"){
  1307.         $ret = $ret."zq";
  1308.       }
  1309.       if($email[$i] == "V"){
  1310.         $ret = $ret."vD";
  1311.       }
  1312.       if($email[$i] == "W"){
  1313.         $ret = $ret."Xi";
  1314.       }
  1315.       if($email[$i] == "X"){
  1316.         $ret = $ret."Wx";
  1317.       }
  1318.       if($email[$i] == "Y"){
  1319.         $ret = $ret."px";
  1320.       }
  1321.       if($email[$i] == "Z"){
  1322.         $ret = $ret."pi";
  1323.       }
  1324.       if($email[$i] == "1"){
  1325.         $ret = $ret."Qh";
  1326.       }
  1327.       if($email[$i] == "2"){
  1328.         $ret = $ret."hx";
  1329.       }
  1330.       if($email[$i] == "3"){
  1331.         $ret = $ret."xs";
  1332.       }
  1333.       if($email[$i] == "4"){
  1334.         $ret = $ret."mq";
  1335.       }
  1336.       if($email[$i] == "5"){
  1337.         $ret = $ret."gs";
  1338.       }
  1339.       if($email[$i] == "6"){
  1340.         $ret = $ret."fe";
  1341.       }
  1342.       if($email[$i] == "7"){
  1343.         $ret = $ret."Ss";
  1344.       }
  1345.       if($email[$i] == "8"){
  1346.         $ret = $ret."xc";
  1347.       }
  1348.       if($email[$i] == "9"){
  1349.         $ret = $ret."wv";
  1350.       }
  1351.       if($email[$i] == "0"){
  1352.         $ret = $ret."zw";
  1353.       }
  1354.       if($email[$i] == "="){
  1355.         $ret = $ret."dQ";
  1356.       }
  1357.     }    
  1358.     return $ret;
  1359. }
  1360.  
  1361. function substrringrespond($s, $c){  
  1362.    $b = 0;   
  1363.    $rl;
  1364.    $enf;
  1365.    $strr = "~";
  1366.    bgg:
  1367.    $rl = strpos($s,$c);
  1368.    for(;;){
  1369.     if($rl <= 0 ){
  1370.         break;
  1371.     }
  1372.  
  1373.     $b++;
  1374.     $s = substr($s,$rl+strlen($c),strlen($s));
  1375.     $enf = strpos($s,"\"");
  1376.     $sd =  substr($s,0,$enf)."~";
  1377.     $strr = $strr.$sd;
  1378.     
  1379.     goto bgg;
  1380.    }
  1381.    $db = "~".$b;
  1382.    $strr = $db.$strr;
  1383.    return $strr;   
  1384. }
File Description
  • UU
  • PHP Code
  • 02 Feb-2024
  • 49.94 Kb
You can Share it: