|
 |
14³â Àü |
$from = 'webmaster@mydomain.co.kr';
$fromdomain = 'mydomain.co.kr';
$fromname = '°ü¸®ÀÚ';
$to = 'yourid@hanmail.net';
$todomain = 'hanmail.net';
$toname = '¾Æ¹«°³';
$subject = 'Å×½ºÆ®¸ÞÀÏ ÀÔ´Ï´Ù.';
$data = "To: $toname <$to>\r\nFrom: $fromname <$from>\r\nSubject: $subject\r\nContent-Type: text/html; charset=Korean\r\nContent-Transfer-Encoding: base64\r\n\r\n".base64_encode("testmail<br />testmail<br />testmail")."\r\n.\r\n";
$errno = 0;
$errstr = 0;
echo "Connect Start...\n";
if(false === getmxrr($todomain, $mxhosts))
exit("no mx record\n");
$rows = count($mxhosts);
$fastmx = 0;
$oldtime = 999;
for($i = 0; $i < $rows; $i ++) {
$starttime = explode(' ', microtime());
if(false === ($socks[$i] = fsockopen($mxhosts[$i], 25, $errno, $errstr, 30))) {
echo $mxhosts[$i]." not connected\n";
continue;
} else
$sock_close[] = $i;
$endtime = explode(' ', microtime());
$thistime[0] = $endtime[0] - $starttime[0];
$thistime[1] = $endtime[1] - $starttime[1];
$ttime = $thistime[0] + $thistime[1];
echo $mxhosts[$i]." $ttime\n";
if($ttime < $oldtime) {
$oldtime = $ttime;
$fastmx = $i;
}
}
$sock = &$socks[$fastmx];
echo $mxhosts[$fastmx]." Connected errno:$errno errstr:$errstr\n";
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "1 $response\n";
if(substr($response, 0, 3) != '220')
exit("Connection failure\n");
fputs($sock, "EHLO $fromdomain\r\n");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "2 $response\n";
if(substr($response, 0, 3) != '250')
exit("EHLO failure\n");
fputs($sock, "MAIL FROM: $from\r\n");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "3 $response\n";
if(substr($response, 0, 3) != '250')
exit("MAIL FROM failure\n");
fputs($sock, "RCPT TO: $to\r\n");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "4 $response\n";
if(substr($response, 0, 3) != '250')
exit("RCPT TO failure\n");
fputs($sock, "DATA\r\n");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "5 $response\n";
if(substr($response, 0, 3) != '354')
exit("DATA failure\n");
fputs($sock, $data);
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "6 $response\n";
if(substr($response, 0, 3) != '250')
exit("MESSAGES failure\n");
fputs($sock, "QUIT\r\n");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
$response .= fread($sock, $bytes_left['unread_bytes']);
echo "7 $response\n";
if(substr($response, 0, 3) != '221')
exit("QUIT failure\n");
$rows = count($sock_close);
for($i = 0; $i < $rows; $i ++)
fclose($socks[$sock_close[$i]]);
|
|
̵̧ : 314 |
̵̧
¸ñ·Ï
|
|