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
운영게시판
최근게시물
MySQL Q&A 27064 게시물 읽기
No. 27064
[질문] mysql4.1 에서(utf-8) 데이타를 추출해서 sendmail 을 통해 메일 전송문제
작성자
김재흥(paran5e)
작성일
2007-10-03 00:18
조회수
2,221

mysql 은 4.1 을 사용하고 있으며 컴파일 할때 문자셋을 utf-8 로 설정했습니다.

mysql 에 저장되어 있는 데이타(메일 제목, 메일 본문 )를

MYSQL conn;
MYSQL_ROW sql_row;
MYSQL_RES *sql_result;
FILE *fp;

mysql_query(&conn, "select Title, Msg from MESSAGES");
sql_result = mysql_store_result(&conn);
sql_row = mysql_fetch_row(sql_result);

fp = fopen("/usr/sbin/sendmail -v -t","w");
fprintf(fp,"Subject: %s\n", sql_row[0]);
fprintf(fp,"To: %s\n", "myparan@ub.cokr");
fprintf(fp,"\n%s\n", sql_row[1]);
pclose(fp);

위와 같은 방법으로 센드메일을 통해서 메일을 전송하고 나서..
수신된 메시지를 보니.. 제목과 내용의 한글이 깨져서 나옵니다.

mysql 은 문자셋이 utf-8 이라서 sendmail 에서의 인코딩 문제 같은데
sendmail(서버) 에서의 문자셋을 utf-8 로 설정하는 방법을 아시는 분 계시나요???

이 글에 대한 댓글이 총 1건 있습니다.

제 생각에는 sendmail 잘못이라기 보다는, 받는 메일 서버쪽에서 해당 캐릭터셋을 제대로 처리하지 못한 탓이 아닌가 싶습니다.

 

이를 해결하기 위한 방법에는 여러가지가 있겠지만, utf-8보다는 euc-kr 캐릭터셋을 사용하는 것도 하나의 방법입니다. c를 사용하시는 것 같은데, c용 iconv와 같은 라이브러리를 통해 utf-8을 euc-kr로 변환하신 뒤에 보내면 되겠습니다.

 

메일 제목등을 MIME 인코딩해서 보내는 방법도 있습니다. 단, 이것은 받는 메일 서버에서 이것을 잘 처리할 수 있는 경우에만 적용됩니다. 하지만 우리나라의 유수 메일 서버에서 utf-8을 무시한다던가, iso-8859-1로 써놓고는 euc-kr캐릭터셋을 사용해서 메일을 보내는 등, MIME 인코딩을 제대로 처리하지 못하는 경우가 많습니다.

( 우리나라 메일서버들이 잘 처리할 수 있는 MIME인코딩에는 euc-kr + base64 혹은 ks_c_5601-1987 + base64등이 있습니다. =?ks_c_5601-1987?b?.....?=과 같은 문구를 헤더에서 보신 적이 있을겁니다. )

 

저도 메일서버와 메일클라이언트를 utf-8 기준으로 운용하려고 했었으나, 호환성 문제 때문에 결국엔 euc-kr으로 바꾸어 사용중입니다.

 

 

 

박현우(lqez)님이 2007-10-06 20:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
270684.0.20a버젼 케릭터셋 변경
김홍회
2007-10-04
2609
27066게시판 구현시 인덱스 및 페이지 문제 [1]
장성훈
2007-10-03
2595
27065java 와 Mysql연동에 관한 질문입니다. [1]
김승현
2007-10-03
2023
27064[질문] mysql4.1 에서(utf-8) 데이타를 추출해서 sendmail 을 통해 메일 전송문제 [1]
김재흥
2007-10-03
2221
27063여러대의 DB를 replication이 가능한지요.. [2]
박성원
2007-10-02
2199
27062mysql 원격 접속 문제입니다.(방화벽 & user) [2]
민선
2007-10-02
3402
27061Mysql Cluster의 checkpoint에 관해
dba
2007-10-01
1973
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다