하하하...
좋은 소스 감사드립니다.
아울러 Crazy Web Board 3.0.1 의 소스는 이곳 FTP 에 올라와 있습니다.
ftp://database.sarang.net/pub/board 에 보시면 있습니다. (이게 어떻게 구해졌는지 몰라도 떠 돌고 있더군요. 만약 라이센스 문제되면 곧 지워 질지도 모릅니다. 필요하시면 가져 가시길... :/) )
>>이태웅 님께서 쓰시길<<
:: #include <stdio.h>
:: #include "qDecoder.h"
::
:: int main()
:: {
:: char *from="보내는사람주소", *to="받는사람주소";
:: char *subj="파일첨부 테스트";
:: char *filename="첨부파일.txt";
:: char *sp1, *sp2;
:: char header[250];
:: int i, spsize;
:: FILE *fp;
::
:: qDecoder();
::
:: sprintf(header,"From: %s\nTo: %s\nSubject: %s\n", from, to, subj);
:: sp1 = qReadFile("인코딩.uue", &spsize); // uuencode /m 첨부파일 인코딩.uue
:: // /m으로 인코딩하면 base64방법으로 된데용~
:: sp2 = &sp1[0];
:: for (i=0;i<spsize;i++) // 앞의 헤더를 제거..(단지 한줄뿐임..)
:: {
:: if (sp2++[0]==0x0A) break;// ('\n'을 찾는 루틴)
:: }
:: fp=popen("/usr/sbin/sendmail /t /ba","w"); // sendmail 파이프통신 준비
:: fprintf(fp,header);
:: fprintf(fp,"MIME/Version: 1.0\n");
:: fprintf(fp,"Content/Type: multipart/mixed;\n\t");
:: fprintf(pf,"boundary="99999.TodayMailer."");
:: // multipart/mixed가 중요.. 바운더리는 각각의 요소를 구분하는 키!
:: fprintf(fp,"\nMime Prologue\n\n//99999.TodayMailer."); // // 두개를 앞에..
:: fprintf(fp,"\nContent/Type: text/plain; charset=euc/kr\n");
:: fprintf(fp,"Content/Transfer/Encoding: 8bit\n"); // 메일의 본문 부분..
:: fprintf(fp,"\nHi~\n\n");
:: fprintf(fp,"//99999.TodayMailer.\n"); // 두번째 요소..(첨부파일)
:: fprintf(fp,"Content/Type: application/octet/stream\n");
:: fprintf(fp,"name="%s"\n",filename);
:: // octet/stream으로 설정하면 그냥.. 파일임.. image/gif등으로 설정하면 걍! 보임
:: // 물론 gif파일이여야겠죠?
:: fprintf(fp,"Content/Transfer/Encoding: base64\nContent/Disposition");
:: // 인코딩방법을 표기
:: fprintf(fp,": attachment;\n\tfilename="%s"\n\n",filename);
:: fprintf(fp,"%s",sp2); // 인코딩된 파일의 데이터 부분만..
:: fprintf(fp,"\n//99999.TodayMailer.//\nMime Epilogue");
:: free(sp1);free(sp2); // sp2도 해줘야 하남? //; 해주잣!
::
:: pclose(fp);
:: return 1;
:: }
::
:: 아거.. 며칠동안 자료수집과 연구.. 노가다를 거쳐서 그럭 저럭 작성하긴했는데..
:: 다른 분들은 그런 짓 안했으면 좋겠네요.
:: 리눅스에 C언어함수로(리눅스깔때 있던 라이브러리중에) 파일첨부하는 함수 있으면
:: 죽어버릴꺼야.. ㅠ.ㅠ
:: 하다못해.. uuencode해주는 함수라도 있으면.. ㅠ.ㅠ
:: 하여간.. 위에 to,from등등은 뭐.. 다른 방법으로 만들수도있고..
:: sql서버에서 읽어올수도 있으니까요~ 뭐.. 전 테스트를 하기위해..
:: 그냥 문자열을 썼는데.. 이거 참조하시는 분들은 sql서버에 email주소를
:: 왕창~ 저장해놓고.. 1:1로 메일보내는데 사용하세요~
:: 음.. 같은 편지라고 하더라도 1:1로 온 편지와 참조에 주루륵 도매급으로 온
:: 메일이랑은 벌써 느낌부터가 틀리니까용~
::
:: 근데.. 크레이지보드 소스에 이거있다고 하던데.. 그 소스 보신분?
:: 좀 알려주세요~ ㅠ.ㅠ
:: 행복하세요~
|