CI 묻고 답하기

제목 ci smtp 메일 발송할때 발송 불가한 문제가 나타납니다.
카테고리 CI 2, 3
글쓴이 싸재 작성시각 2018/10/25 11:23:34
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 20387   RSS

안녕하세요.

ci 에서 sendmail 로 그냥 메일 보내지는건 되는데.

smtp 를 사용해서 메일을 보내게 되면 계속 안 보내지네요 php 에서 설정이 안되어있을수 있다하면서요.

구글링 해서 열심히 찾아서 해봤지만 역시 삽질의 연속입니다...

그래서 답을 구하고자 질문을 남깁니다.. 부디 명쾌한 해답을 주실수 있으신 분을 찾습니다 ㅠ.ㅠ

 

먼저 환경 스펙 입니다.

PHP Version 7.0.32-0ubuntu0.16.04.1

SMTP localhost localhost
smtp_port 25 25

 

소스 코드 입니다.

$smtp_config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'smtp.naver.com',
    'smtp_user' => '네이버 계정',
    'smtp_pass' => '네이버 비밀번호',
    'smtp_port' => '465',
    'smtp_crypto' => 'ssl',
    'mailtype' => 'html',
    'newline' => '\r\n'
);

$this->load->library('email');

$this->email->initialize($smtp_config);
//$this->email->clear(true);

$this->email->from(ADMIN_EMAIL, ADMIN_EMAIL_NAME);
$this->email->to('받는 이메일');

$this->email->subject('SMTP 테스트');
$data = "<div>SMTP 가냐</div>";
$this->email->message($data);

$this->email->send();

 

이렇게 설정해서 보내면..

 

220 smtp.naver.com ESMTP jLktmdMKSBCjjqmC4bSwTA - nsmtp 

hello: 250-smtp.naver.com Pleased to meet you
250-SIZE 20971520
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250 ENHANCEDSTATUSCODES
from: 250 2.1.0 OK jLktmdMKSBCjjqmC4bSwTA - nsmtp
to: 250 2.1.5 OK jLktmdMKSBCjjqmC4bSwTA - nsmtp
data: 354 Go ahead jLktmdMKSBCjjqmC4bSwTA - nsmtp
quit: 

The following SMTP error was encountered: 

The following SMTP error was encountered: 

Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.

 

요렇게 에러가 납니다.

smtp 를 사용하지 않고 그냥 mail 만 보내면 일반 mail은 전송됩니다.

머리가 뽀개질것 같습니다.

도움이 필요합니다.

감사합니다.

 

 다음글 parse 경로 질문입니다 ㅠ.ㅠ (6)
 이전글 로그인기능문제 (3)

댓글

변종원(웅파) / 2018/10/25 11:33:52 / 추천 0

네이버 smtp 포트는 587입니다.

외부 메일프로그램에서 smtp 설정하고 보내지는지 확인해보세요.

싸재 / 2018/10/25 11:39:39 / 추천 0

#변종원(웅파)

587로 설정하게 될 경우 

hello: 250-smtp.naver.com Pleased to meet you

이 조차 뜨지 않고 에러가 납니다.

네이버 smtp 에 로그인도 안되고 에러가 나는거죠..

포트 문제는 아닌듯 합니다ㅠ.ㅠ

변종원(웅파) / 2018/10/25 12:15:23 / 추천 0
메일프로그램에서 설정해서 발송되는지 확인해보세요.

'smtp_port' => '587',
    'smtp_crypto' => 'tls',
싸재 / 2018/10/25 13:51:05 / 추천 0

아웃룩에서 테스트 결과

465 / ssl 로 설정하니 잘 가집니다..

587 / tls 는 안가지네요..

변종원(웅파) / 2018/10/25 14:16:11 / 추천 0
'charset'  => 'utf-8' 도 추가해보시구요.

host 에 ssl:// 을 추가해보라는 답변도 있네요.

 

smtp_user <- 아이디@naver.com
싸재 / 2018/10/25 14:25:16 / 추천 0

다 해봤으나 똑같습니다..

음.. smtp 설정의 문제는 아닌듯 합니다.

서버상의 설정 문제인듯하고 sendmail 에서 몬가를 설정해주면 될것 같다는 느낌까지 받았습니다.

그래서 그 방법을 체크 중입니다...

조현 / 2018/11/07 23:08:06 / 추천 0

저도 관련문제를 겪었던 적이 있습니다.

똑같은 상황일지 모르겠지만 참고는 될것 같네요.

http://bluebreeze.co.kr/809

kaido / 2018/11/08 10:13:57 / 추천 0
$this->load->library('email');
		$config['useragent'] = '';
		$config['protocol'] = 'smtp';
		$config['smtp_host'] = 'ssl://smtp.naver.com';
		$config['smtp_user'] = '';
		$config['smtp_pass'] = '';
		$config['smtp_port'] = 465;
		$config['smtp_timeout'] = 5;
		$config['wordwrap'] = TRUE;
		$config['wrapchars'] = 76;
		$config['mailtype'] = 'html';
		$config['charset'] = 'utf-8';
		$config['validate'] = FALSE;
		$config['priority'] = 3;
		$config['crlf'] = "\r\n";
		$config['newline'] = "\r\n";
		$config['bcc_batch_mode'] = FALSE;
		$config['bcc_batch_size'] = 200;
		
		$this->email->initialize($config);

		$this->email->from('kudomiyu@naver.com','kudo');
		$this->email->to('bastcode@gmail.com');

		$this->email->subject('SMTP 테스트');
		$data = "<div>SMTP 가냐</div>";
		$this->email->message($data);
		$this->email->send();

 

방금전 발송 테스트 확인 하였습니다.

동일하게 해보시고 안되시면 다른 문제로 판단 됩니다.