database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 2468 게시물 읽기
No. 2468
Re: 이거 여기 적어도 될라나? C언어로 email에 파일첨부하는건데요~
작성자
정재익
작성일
2001-03-23 01:00
조회수
4,268

하하하...

좋은 소스 감사드립니다.

아울러 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로 온 편지와 참조에 주루륵 도매급으로 온

:: 메일이랑은 벌써 느낌부터가 틀리니까용~

::

:: 근데.. 크레이지보드 소스에 이거있다고 하던데.. 그 소스 보신분?

:: 좀 알려주세요~ ㅠ.ㅠ

:: 행복하세요~

[Top]
No.
제목
작성자
작성일
조회
2471## varchar데이타타입의 최대길이는? ##
궁금한자
2001-03-23
3834
2472┕>Re: ## varchar데이타타입의 최대길이는? ##
정재익
2001-03-23 13:45:57
3939
2466date type을 가공할때
이동기
2001-03-22
3427
2467┕>Re: date type을 가공할때
정재익
2001-03-23 00:56:55
3895
246598에서 코끼리 실행시 에러가 납니다 ('04/30/2001' is not a valid date)라구여
김용운
2001-03-22
3788
2485┕>그건 win2000 pro 나 server에서도 마찬가지네여...ㅋㅋ 나두 몰러여..
아롱이
2001-03-25 17:47:38
3869
2508┕>Re: Window용 pgsql '04/30/2001' is not a valid date 문제 해결책
박성민
2001-03-29 11:32:21
3761
2464이거 여기 적어도 될라나? C언어로 email에 파일첨부하는건데요~
이태웅
2001-03-21
5312
2468┕>Re: 이거 여기 적어도 될라나? C언어로 email에 파일첨부하는건데요~
정재익
2001-03-23 01:00:01
4268
2462PostgreSQL7.0.3을 Windows2000에서 소스 커파일하는 법.
유창재
2001-03-21
4190
2463┕>Re: Thanx a lot ! :-)
정재익
2001-03-21 16:30:48
4173
2457[질문]postgresql 用 JDBC 2.0 드라이버 문제
김교식
2001-03-20
4254
2458┕>Re: [질문]postgresql 用 JDBC 2.0 드라이버 문제
정재익
2001-03-20 10:08:04
4101
2459 ┕>Re: Re: [질문]postgresql 用 JDBC 2.0 드라이버 문제
김교식
2001-03-20 10:16:14
4258
2455postgres 설치시 initdb 에서 에러
김신일
2001-03-19
5260
2456┕>Re: postgres 설치시 initdb 에서 에러
정재익
2001-03-19 19:45:24
5586
2460┕>Re: postgres 설치시 initdb 에서 에러
이태웅
2001-03-20 14:12:11
5658
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다