일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- #happycgi
- javascript
- CSS
- #홈페이지제작
- php
- #동영상
- #해피CGI
- #cgimall
- happycgi
- #웹솔루션
- 웹솔루션
- #업종별
- 해피씨지아이
- #쇼핑몰
- CGIMALL
- 게시판
- 사이트제작
- #CSS
- #이미지
- #jQuery
- #홈페이지
- jquery
- 쇼핑몰
- 홈페이지
- 솔루션
- 홈페이지제작
- #뉴스
- #솔루션
- 해피CGI
- #image
- Today
- Total
웹솔루션개발 22년 노하우! 해피CGI의 모든것
[해피CGI][cgimall] blat - 윈도우용 메일러 본문
배포처 : http://www.webweaver.pe.kr
배포자 : KimJuWon (i@webweaver.pe.kr)
배포일 : 2001/02/20
버전정보 : blat 1.8.6 (compiled in EUC-KR)
Note. 설치와 사용에 관한 질문은 절대 받지 않습니다.
편의상 경어를 생략합니다.
##########################################################################
목차
■ blat 이란?
■ 특징/기능
■ 요구사항
■ 설치법
■ 사용법
■ CGI(Perl) 프로그램에서 사용법
■ 문제해결
■ blat 이란? :
blat 은 윈도우계열(윈도우NT, 2000, 윈98, 윈미) 코맨드라인에서 동작하는
메일러이다. blat을 사용하기 위해서는 반드시 tcp/ip와 smtp를 사용할 수 있는
환경이어야 한다.
배포자는 단지 이 ``설명서 제작``과 소스파일의 ``charset를 EUC-KR를 수정``하여,
컴파일 한것외에는 한것이 없으므로, 이 프로그램의 사용으로 인하여 발생하는
손실이나 문제에 대하여 전혀 책임지지 않는다.
■ 특징/기능 :
- 메일내용을 한글로 발송시 글씨가 깨져서 나오던 문제 해결
- cc, bcc, 파일첨부 등 모든 기능을 지원
- html형식의 메일보내기 완벽 지원
■ 요구사항 :
- tcp/ip, 즉 인터넷을 사용할 수 있는 환경이어야 한다.
- smtp(Simple Mail Transfer Protocol)을 사용할 수 있는 환경이어야 한다.
자신의 컴퓨터가 고정 ip를 사용하고 있고, 윈도우 NT 계열을 사용하고 있다면,
인터넷서비스관리자(MMC)와 도메인관리자에서 smtp를 설정할 수 있다.
윈도우 NT/2000을 사용하고 있으나, 유동 ip를 사용하거나, smtp서버가
설치되어 있지 않은 경우, 또는 윈98/ME를 사용하는 경우에는
자신의 isp의 smtp서버를 사용한다. 예를 들면, 자신이 코넷망을 사용하고 있다면
smtp 서버는 mail.kornet.net이 될것이다.
- 윈도우 계열의 운영체제에서만 동작한다.
■ 설치법 :
- c:lat 이란 디렉토리를 만들고, 압축을 푼다.
- 방금 만든 디렉토리에 blat.exe란 파일이 있어야 한다.
- gensok.dll파일을 윈도우의 system 또는 system32(NT/2000)에 복사한다.
만일, 최신의 gensok.dll파일이 이미 설치되어 있다면, 취소하라.
아마, 거의 대부분이 이부분은 생략해도 될 것이다.
- 도스창을 연다. blat 이 설치되 디렉토리로 이동.
- blat -install mail.abc.com xxx@abc.com
예를 들어 코넷을 사용한다면, blat -install mail.kornet.net xxx@kornet.net
이 될것이다.
만약 자신의 smtp서버를 가지고 있다면, 주소가 smtp.korea.co.kr이고, 메일계정이
webmaster@korea.co.kr이라고 한다면,
blat -install smtp.korea.co.kr webmaster@korea.co.kr이라고 하면 될것이다.
- 윈98/ME의 경우는 autoexec.bat 파일을 열고,
path=c:lat; 의 경로를 수정해 준다.
- 윈도우 NT/2000의 경우 내컴퓨터의 환경변수 path부분, 수정을 클릭하고
blat의 설치경로를 추가해 준다. 재부팅
■ 사용법 :
syntax:
Blat
-t
-s
-f
-cc
-bcc
-r : 읽음 확인
-h : 도움말
-server
-port
-mime : MIME Quoted-Printable Content-Transfer-Encoding.
-enriched : Content-Type=text/enriched 의 메시지를 보낼 경우
-html : Content-Type=text/html, html형식의 메시지를 보낼 경우
-base64 : base64 (binary Mime) 타입의 파일을 보낼 경우
-attach
-attacht
도스창을 열고 아래와 같이 테스트 해보라.
blat myfile.txt -s "A file for pedro" -t foo@bar.com
//myfile.txt의 내용을 A file for pedro란 제목으로 foo@bar.com에게 보낸다.
//이때, 보낸 사람은 -install할때 쓴 메일 주소가 된다.
blat myfile.txt -s "A file for pedro" -t foo@bar.com -q
//-q 옵션은 화면에 결과를 출력하지 않을때 사용, 별 쓸모 없음.
blat myfile.txt -s "A file for mark" -t fee@fi.com -f foo@bar.com
//기본 보내는 사람을 무시하고, 보낸사람이 foo@bar.com이 된다.
Blat myfile.txt -s "animals" -t fee@fi.com -cc "moo@grass.edu,horse@meadow.hill"
//moo@grass.edu,horse@meadow.hill에게도 참조메일을 보낸다.
blat.exe BLAT.ZIP -s "file to gil" -t foo@bar.com -base64
//MIME Base 64 format으로 blat.zip파일을 보낸다.
blat myfile.txt -s "oumpla" -t foo@bar.com -attach c:myfolder*.txt
//myfile.txt의 내용을 oumpla라는 제목으로 foo@bar.com에게 c:myfolder*.txt
//파일을 첨부해서 보낸다.
//c:myfolder*.*으로 쓰면 모든 파일을 보낸다.
blat myfile.txt -t fee@fi.com -server smtp.domain.com -port 6000
■ CGI(Perl) 프로그램에서 사용법 :
위의 사용법을 잘 보았다면, cgi프로그램에서 사용하는 데 별무리가 없을거라 생각한다.
## 메일 보낼 내용을 $comments란 변수에 저장한다.
$comments = "
$FORM{``subject``} |
";
## $comments변수에, html form인, content에서 받은 내용을 더한다.
## . 연산자에 유의하라. 문자열을 합치는 연산자 이다.
$comments .= "$FORM{``content``}";
## $comments변수에 아래 내용을 더한다.
$comments .= "
";
## blat의 경로를 지정한다. 만약 이미 시스템에서 경로가 지정되어 있을 경우에는
## blat이라고만 써도 된다. 그리고 c:다음에 역슬래쉬 두개를 씀에 유의하라.
## 앞에것은 단지 escape 문자의 역할을 한다.
$SENDMAIL = "c:latlat";
## 받는 사람에 tomail이란 폼에서 받은내용을 저장한다.
$t = "-t $FORM{``tomail``}";
## 제목에 subject란 폼에서 받은내용을 저장한다.
$s = "-s "$FORM{``subject``}"";
## 보내는 사람에 frommail이란 폼에서 받은내용을 저장한다.
$f = "-f $FORM{``frommail``}";
## 메일 발송결과를 저장할 파일, 문제발생시 디버그 정보로 유용하다.
$LOG = "process.log";
## 임시로 $comments 변수의 내용을 저장할 파일, 이것이 실제 메일 내용이 된다.
$file = "temp.txt";
open(OUTPUT, ">$file");
print OUTPUT "$comments
";
close(OUTPUT);
$commandline = "$SENDMAIL $file $s $t $f -html > $LOG";
## 역 따옴표에 유의하라. 코맨드라인에서 실행하라는 의미다.
## 대신 system()함수를 사용해도 된다. 방법은 system($commandline);
`$commandline`;
## 문제발생의 아래의 두라인은 주석처리하고, 문제를 해결하라.
unlink($file);
unlink($LOG);
*** Win32::Process 펄 모듈을 사용할 경우 : ***
## 윈도우 NT계열에서는 Process를 사용하는 것이 훨씬 안정적이다.
## 메일링 리스트등에 blat을 사용할 경우는 반드시 이렇게 하라.
## 루틴시작
...
...
$commandline = "$SENDMAIL $file $s $t $f -html > $LOG";
use Win32::Process;
use Win32;
Win32::Process::Create($ProcessObj, $SENDMAIL, "$commandline", 0, DETACHED_PROCESS, ".") || die ErrorReport();
$ProcessObj->Wait(INFINITE);
unlink($file);
unlink($LOG);
## 루틴끝
## Win32::Process 의 에러보고를 위한 루틴
sub ErrorReport {
print Win32::FormatMessage(Win32::GetLastError());
}
■ 문제해결 :
- 아직까지 2주일동안 사용해본 결과 별 문제가 없었다.
(WinNT, Apache 1.3.9, ActivePerl 5.60, http://gsp.kyunghee.ac.kr)
(Win2000, IIS 5.0, ActivePerl 5.5, localhost 개발환경)
- Apache 에서 사용할 경우 malformed header 에러가 나는 경우는
system()함수를 사용하지 말고, `` 역따옴표 코맨드라인을 사용해 보라.
끝. 편의상 경어를 생략했습니다. 양해바랍니다.
##########################################################################
'웹프로그램밍 자료실 > C언어 자료' 카테고리의 다른 글
[해피CGI][cgimall] 다중폼메일 (0) | 2016.12.09 |
---|---|
[해피CGI][cgimall] 크레이지보드98PE 디자인수정판 (0) | 2016.12.08 |
[해피CGI][cgimall] IBC드림닷컴 (0) | 2016.12.06 |
[해피CGI][cgimall] KissGuestbook (0) | 2016.12.05 |
[해피CGI][cgimall] KissWebBoard 게시판 (0) | 2016.12.02 |