제로보드 XE에서 발송한 이메일이 소스로 보인다??

잘 작동하던 이메일이 언제부터인가 갑자기 내용이 않나오고 이메일 소스가 그대로 노출되는 현상이 발생하였습니다.

오류 이메일 본문

주가알리미 사이트에서 제로보드 XE의 Mail.class.php클래스를 이용해서 이메일 보내고 있는데 갑자기 이메일 소스가 출력되는 괴이한 현상이 발생하여 찾다찾다 이제야 원인을 발견하고 조치를 취했습니다.

원인은 다름아닌 줄바꿈 문자가 “\n” 이 아닌 “\r\n”으로 들어가서 입니다.  이 부분이 어디 있냐면 Mail.class.php 파일에 send() 함수에 있습니다.

	function send()
	{
		if($this->Mailer == "mail")
		{
			$boundary = '----==' . uniqid(rand(), TRUE);
			$this->eol = $GLOBALS['_qmail_compatibility'] == "Y" ? "\n" : "\r\n";
			$this->header = "Content-Type: multipart/alternative;" . $this->eol . "\tboundary=\"" . $boundary . "\"" . $this->eol . $this->eol;
			$this->body = sprintf(
				"--%s" . $this->eol .
				"Content-Type: text/plain; charset=utf-8; format=flowed" . $this->eol .
				"Content-Transfer-Encoding: base64" . $this->eol .
				"Content-Disposition: inline" . $this->eol . $this->eol .

위에 보면 $GLOBALS[‘_qmail_compatibility’]이 Y냐 아니냐에 따라서 줄바꿈 문자를 지정하는데 이상하게 “\r\n” 으로 지정되면 줄바꿈 문자가 중복해서 2번 들어가는 문제가 발생합니다.
그래서 이메일 내용에 줄바꿈이 두번 들어가면서 이메일 클라이언트나 웹메일에서 해석을 못하고 걍 소스를 그대로 보여주는 것 같습니다.

제로보드 환경 속에서가 아니라 그냥 클래스파일만 include해서 작업하니 이런 자잘한 설정에서 삑사리나네요. 이거 찾기 정말 힘들었습니다.

Advertisements

Published by: benant

WEB PROGRAMMER. PHP, ASP, XML, Javascript, VBScript, PL/SQL, MySQL, Oracle. scrollads.co.kr 새로운 모바일 광고 서비스. trenue.com 시스탬 트래이딩 서비스. blogman.co.kr 블로그 운영 관리 서비스. creget.co.kr 해외 상품 구매대행. 핫딜 정보 제공 서비스. fgshop.co.kr - 독립형 쇼핑몰 솔루션.

Categories Web태그, , , , 댓글 남기기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중