CI 묻고 답하기

제목 CI에서의 email과 예외처리에 대하여..
글쓴이 리누스토발즈 작성시각 2014/02/02 11:28:32
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 17096   RSS
 먼저, 새해복 많으받으십시오 CI한국포럼 여러분!

제 질문은 2가지입니다.
첫번째는 다음과같은 소스로 이메일을 보내고 있습니다.
 
$config['mailtype']  = "text"; 
$config['charset']   = "utf-8"; 
$config['protocol']  = "smtp"; 
$config['smtp_host'] = "xxxxxxxxxxxxxxxxxxx; 
$config['smtp_port'] = 587; // smtp port : ssl-465, smtp-25 or 587
$config['smtp_user'] = "xxxxxxxxxxxxx"; 
$config['smtp_pass'] = "xxxxxxxxxxxx"; 
$config['smtp_timeout'] = 10; 
 
$this->load->library('email', $config); 
 
$this->email->set_newline("\r\n"); 
$this->email->clear(); 
$this->email->from("xxxxxx", "xxxxxxx"); 
$this->email->to("xxxxxxxxxxx"); 
$this->email->subject("xxxxxxxx"); 
$this->email->message($message); 

('xxxxx'부분은 개인정보여서 지운상태입니다)
위 소스로 메일을 보내고 있는데, 잘 보내지고 있습니다.
하지만, $config['mailtype']을 html로 하게되면 $message가 일정 바이트(약 50바이트) 이상 넘으면 메일이 보내지지 않아서 현재 text로 보내고 있습니다. (text는 제한이 있는지 모르겠지만 보내고자 하는 문자열은 보내집니다.)
그런데 여기서 $this->email->subject("xxxxxxxx");  이 부분에 제목을 길게쓰면 또 안보내지는 일이 발생합니다.
이 문제를 어떻게 해결하면 될까요?

그리고, 두 번째 질문입니다.
예외처리로 view에서 <?php echo form_error('email'); ?> 를 써주었는데, 해당 페이지 출력 시 html이 모두 깨지고, form_error()가 잘못됬다는 에러 메시지를 띄웁니다. 현재 다른 페이지의 예외처리들은 제대로 동작하는 상태이고, 해당 페이지에서만 이런일이 발생하여 이렇게 질문합니다

선배님들의 답변 기다리겠습니다.
 
 다음글 다국어 컨텐츠 사이트 만들기 (2)
 이전글 어떤 IDE를 사용중이신가요? (5)

댓글

변종원(웅파) / 2014/02/03 10:12:20 / 추천 0
html로 하게될 경우 ' " / 등등에서 잘릴 수 있습니다. $message내용을 출력해보세요.

name='email' 이고 폼검증에서도 email로 되어 있는거죠? 에러메세지를 올려주세요.
수야디벨 / 2014/02/03 10:57:11 / 추천 0
저도 div 폼에 맞춰서 이메일을 보내기 위해서 html 형식으로 메일을 보내지만,
아무런 문제가 없는데 . . . .

우선 이메일 클래스에 나와 있는 

$this->email->print_debugger() 로 디버깅 해보시고 ,

아파치 메일서버 에러를 한번 살펴보세요. 
리누스토발즈 / 2014/02/03 10:58:31 / 추천 0
'변종원(웅파)'님 소중한 답변 감사합니다.
질문 급이 낮아도 저에겐 너무 소중한 답변이네요 ㅎㅎ
답변주신 $message내용을 출력한 결과  ' " / 이 문자들에서 잘리는 모습입니다. 해법은 없는지요?

그리고 폼검증의 경우 에러메시지 올려보겠습니다.

마지막으로 지금 찾은 에러인데, 제가만든 웹 어플리케이션 검색창에 한글을 써서 검색하는데, 몇가지 단어들을 검색하면 
WHERE `l_pname` = '�곸뼱' OR `l_lecturename` = '�곸뼱' AND `l_pname` LIKE '%�곸뼱%' OR `l_lecturename` LIKE '%�곸뼱%'
이런식으로 인코딩이 깨져서 에러메시지와 함께 쿼리를 전부 출력합니다.... (위 에러메시지는 일부만 가져왔습니다) 메타데이터를 해당 파일에 직접 삽입해주면 괜찮은데, 이 경우엔 부트스트랩 css가 적용이 안됩니다. 이 문제를 어찌해야 할까요..

리누스토발즈 / 2014/02/03 11:12:51 / 추천 0
 '수야디벨'님 답변 감사합니다.
답변을 보니 제가 사용할 줄을 모르는가 봅니다.
$this->email->print_debugger()로 디버깅도 해보았으나 해당 에러메시지에서 MIME타입을 지원하지 않는다고 나왔었는데, 추가로 이에대한 메시지에러도 올려보겠습니다.
리누스토발즈 / 2014/02/03 11:27:37 / 추천 0
 '변종원(웅파)'님 폼 검증 부분 에러가 몇일 전에 발생한 것인데, 그동안 다른 글도 찾아보고 메뉴얼을 보는동안 폼검증 실패 시 form_error()를 사용하지 않고 다른 폼을 생성했습니다. 그래서 지금 이 폼에 동일하게 form_error()를 사용하여 출력해줬더니 잘 동작합니다. 이전 에러가 발생하던 폼과 현재 에러가 발생하지 않는 폼 모두 view에 있는데, 에러메시지로는 페이지 인코딩이 모두 깨지고, html이 적용안되며 form_error()라는 함수가 정의되어있지 않다고 나왔었습니다. 
리누스토발즈 / 2014/02/03 11:35:26 / 추천 0
$this->email->print_debugger()로 디버깅 해보았습니다.
위 질문글에 있는 소스에서 제목에 한글만 추가하여 총 25바이트로 되어있습니다.
이외에는 메일이 보내지는데, 왜 php smtp를 사용할수 없다고 나오는걸까요?
수야디벨 / 2014/02/03 15:17:10 / 추천 0
 http://stackoverflow.com/questions/19814467/how-i-send-email-from-codeigniter

구글에서  unable to send email using php smtp codeigniter 로 검색~!