소켓으로 메일보내기

31399 
Created at 2007-01-30 03:25:09 
220   0   0   0  
$from = 'webmaster@mydomain.co.kr';
$fromdomain = 'mydomain.co.kr';
$fromname = '관리자';
$to = 'yourid@hanmail.net';
$todomain = 'hanmail.net';
$toname = '아무개';
$subject = '테스트메일 입니다.';
$data = "To: $toname <$to> From: $fromname <$from> Subject: $subject Content-Type: text/html; charset=Korean Content-Transfer-Encoding: base64 ".base64_encode("testmail<br />testmail<br />testmail")." . ";
                                                                                
$errno = 0;
$errstr = 0;
                                                                                
echo "Connect Start... ";
                                                                                
if(false === getmxrr($todomain, $mxhosts))
    exit("no mx record ");
                  $nbsp;                                                             
$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 ";
        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 ";
    if($ttime < $oldtime) {
        $oldtime = $ttime;
        $fastmx = $i;
    }
}
                                                                                
$sock = &$socks[$fastmx];
                                                                                
echo $mxhosts[$fastmx]." Connected errno:$errno errstr:$errstr ";
                                                                                
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
    $response .= fread($sock, $bytes_left['unread_bytes']);
echo "1 $response ";
if(substr($response, 0, 3) != '220')
    exit("Connection failure ");
                                                                                
fputs($sock, "EHLO $fromdomain ");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
    $response .= fread($sock, $bytes_left['unread_bytes']);
echo "2 $response ";
if(substr($response, 0, 3) != '250')
    exit("EHLO failure ");
                                                                                
fputs($sock, "MAIL FROM: $from ");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
    $response .= fread($sock, $bytes_left['unread_bytes']);
echo "3 $response ";
if(substr($response, 0, 3) != '250')
    exit("MAIL FROM failure ");
                                                                                
fputs($sock, "RCPT TO: $to ");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
    $response .= fread($sock, $bytes_left['unread_bytes']);
echo "4 $response ";
if(substr($response, 0, 3) != '250')
    exit("RCPT TO failure ");
                                                                                
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 "5 $response ";
if(substr($response, 0, 3) != '354')
    exit("DATA failure ");
                                                                                
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 ";
if(substr($response, 0, 3) != '250')
    exit("MESSAGES failure ");
                                                                                
fputs($sock, "QUIT ");
$response = fread($sock, 256);
$bytes_left = socket_get_status($sock);
if($bytes_left > 0)
    $response .= fread($sock, $bytes_left['unread_bytes']);
echo "7 $response ";
if(substr($response, 0, 3) != '221')
    exit("QUIT failure ");
                                                                                
$rows = count($sock_close);
for($i = 0; $i < $rows; $i ++)
    fclose($socks[$sock_close[$i]]);

Tags: mail socket Share on Facebook Share on X

◀ PREVIOUS
실수로 삭제한 mysql DB 복구방법
▶ NEXT
애드센스 기록기, Mysense!
  댓글 0
로그인을 하시면 댓글을 등록 할 수 있습니다.
SIMILAR POSTS

폼메일 예제 (created at 2006-12-22)

csv 파일을 이용한 메일링 리스트 구현 (created at 2006-12-22)

Java로 구현하는 간단한 Client & Server 프로그램 (created at 2007-07-16)

소켓 프로그래밍 기본 흐름 - Socket Programming Basic Flow (created at 2007-07-16)

간단한 소켓 클라이언트 프로그램 (created at 2007-07-16)

소켓을 생성하여 CSocket에 Attach하는 방법 (created at 2007-07-19)

Ahrefs bot의 비상식적 사이트 크롤링 접근 차단 - robots.txt 수정 또는 .htaccess 파일 수정을 통해 차단 가능해 (created at 2014-06-09)

OTHER POSTS IN THE SAME CATEGORY

매번 rand결과가 같게 나오지 않게 하려면 (created at 2007-05-08)

PHP, 정규분포 난수 생성, 가우스 분포 랜덤 발생 함수; Normal Distribution (created at 2007-05-08)

오늘 날짜를 문자열로 변환 (created at 2007-05-08)

특정 폴더의 특정 파일만 파일명으로 지우기 (created at 2007-05-07)

ShellExecuteEx를 이용한 커맨드라인 기반 어플리케이션 실행 (created at 2007-05-07)

PC에서 동영상 삭제가 안될때. (created at 2007-02-14)

대문자, 소문자 변환 함수 (created at 2007-02-14)

HTML Color Table (created at 2007-02-08)

Apple iPod Remote Control Protocol (created at 2007-02-06)

훅 인스턴스의 생성과 해제 (created at 2007-02-06)

virtual와 override 문의 사용법에 대해서 (created at 2007-02-06)

델파이로 긁어오는 HTML 페이지 (created at 2007-02-06)

Apache rewrite 사용 방법 (created at 2007-02-02)

태터툴즈에서 게시물을 id가 아닌 제목으로 뿌리는 방법 (created at 2007-02-02)

애드센스 기록기, Mysense! (created at 2007-02-02)

실수로 삭제한 mysql DB 복구방법 (created at 2007-01-30)

MySQL root 패스워드 분실했을 경우 (created at 2007-01-30)

컴퓨터 활용팁 100가지 (created at 2007-01-30)

마우스 커서 모양바꾸기 (created at 2007-01-28)

이미지가 많아서 로딩할때 시간이 많이걸릴 경우 (created at 2007-01-28)

스크롤바에 붙어다니는 이미지 (created at 2007-01-28)

이미지의 다운로드를 막아주는 스크립트 (created at 2007-01-28)

큰 이미지를 화면크기에 맞게 자동으로 사이즈 조절 (created at 2007-01-28)

랜덤 이미지 로딩시키기 (created at 2007-01-28)

이미지를 서치라이트로 비추는 효과 (created at 2007-01-28)

강력한 소스 보호 (created at 2007-01-28)

간단한 소스로 브라우즈 따운시키기 (created at 2007-01-28)

Windows95/98 암호 알아내기 (created at 2007-01-28)

출생 날짜를 입력하면 무슨 요일인지 표시 (created at 2007-01-28)

오늘의 년도,월,일,시,분 을 표시 (created at 2007-01-28)

UPDATES

입사 후 1년도 되지 않은 회사에서 구조조정에 의한 퇴직 불응에 따른 해고 처리시 대응 가능한 방법 (updated at 2024-04-20)

한고은님의 옛날 사진 (updated at 2024-04-20)

소녀대 - Bye Bye Girl (updated at 2024-04-13)

대한민국 날씨 근황 (created at 2024-04-13)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-04-13)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-04-13)

Marshall Ha님의 샤오미 SU7 시승기 - 테슬라의 일론 머스크님이 긴장할만한 느낌 (updated at 2024-04-09)

윙크하는 귀염둥이 반려견들 (created at 2024-04-08)

달콤 살벌한 고백 (created at 2024-04-08)

북한 최정예 공수부대 훈련 모습 (updated at 2024-04-02)

맛있었던 친구 어머니의 주먹밥이 먹고 싶어요 (created at 2024-04-02)

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)

신한은행/신한투자증권 금융거래 종합보고서 다운로드 방법 (updated at 2024-02-26)

100년 된 일본 장난감 회사가 내놓은 변신 기술에 난리난 과학계 (created at 2024-02-26)

알리에서 발견한 한글 지원하는 가성비 쩌는 무선 기계식키보드 (updated at 2024-02-25)

쌍팔년도가 1988년인줄 알았던 1인 (updated at 2024-02-23)

이쁜 색으로 변신한 테슬라 사이버트럭 (created at 2024-02-23)

2024년 카타르 아시안컵 4강전 전날 한국 대표팀 내부에 있었던 이강인의 폭주 (updated at 2024-02-21)

강릉 맛집 지도 (updated at 2024-02-20)

간이 안좋을 때 나타나는 증상 20가지 (updated at 2024-02-20)

배설물을 이용하여 일본에 저항했던 독립운동가 조명하 (updated at 2024-02-20)

요건 몰랐지롱? 이순신을 사랑한 외국인 (created at 2024-02-20)