제목 | aws ses smtp 를 사용하여 CI에서 이메일을 보내면 Permission denied 오류가 납니다. | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
카테고리 | 서버 | ||||||||||
글쓴이 | 데카르트 | 작성시각 | 2018/08/03 16:01:30 | ||||||||
|
|||||||||||
안녕하세요. aws route53에서 도메인을 구매하여 ses를 통해 외부로 이메일을 보낼 수 있게 만드려고합니다.
< 작업환경 > # Route53(도메인 + https, SSL 인증) -> ELB -> EC2 + RDS + SES - 서버 : aws EC2(서울리전) 리눅스 CentOS7 / Apache 2.4.6 / PHP 5.4.16 (CI) - DB : aws RDS(서울리전) / mariaDB 연동 - 이메일 : aws SES(미국동부 버지니아 북부) / 도메인으로 이메일 발송
<Controller> <SES SMTP 세팅>
<오류 코드> A PHP Error was encountered Severity: Warning Message: fsockopen(): unable to connect to ssl://email-smtp.us-east-1.amazonaws.com:465 (Permission denied) Filename: libraries/Email.php Line Number: 2055 Backtrace: File: /var/www/html/application/controllers/UserAjax.phpLine: 178Function: send File: /var/www/html/index.phpLine: 315Function: require_once
<현재 상황> - AWS SES : LIMIT 제한 요청하여 풀렸습니다. AWS SES 브라우져에서 테스트 이메일 보내기하면 외부 이메일로 보내집니다. - 그런데 CI에서 이메일을 보내려고 하면 위 처럼 오류가 발생합니다. 구매한 도메인에서 도메인으로 메일을 보내보아도 마찬가지 오류가 납니다. - 처음 설정은 TLS 였는데 SSL로 변경하여 시도해보았고 포트도 25 / 465 / 587 모두 시도해보았습니다. - EC2 에서 인바운드(inbound) 포트도 25, 587 열어서 해보았지만 안됐습니다. - fsockopen() 오류때문에 httpd_can_network_connect=off 에서 ON으로도 바꿔서 해봤지만 되지 않아 다시 off로 해놨습니다.
현재 AWS를 이용하여 서버 구축하고 있습니다. 그런데 이메일에서 몇 일 동안 구글링을 하고 있는데 도저히 해결을 못하고 있습니다. SES는 처음 써보는거라서 막막하여 이렇게 질문 드립니다. 웅파님을 비롯한 선배님들 도와주세요. ㅠ_ㅠ
|
|||||||||||
다음글 | 파일 업로드 이렇게 하는것 아닌가요? (3) | ||||||||||
이전글 | phpstorm 에서 서버와 싱크를 맞출 때 어떻게 하... (2) | ||||||||||
kaido
/
2018/08/03 16:22:00 /
추천
0
|
데카르트
/
2018/08/03 16:24:51 /
추천
0
다시 구글링하다가 해결했습니다.;;; 제가 질문하려고 생각을 정리하다가 문제점을 찾은것 같습니다. 아무래도 CentOS의 sendmail 에서 권한을 수정해줘야 할 것 같다는 생각이 들어 구글링하던중 # setsebool httpd_can_sendmail 1 명령어로 바꿔줬더니 문제가 해결되었습니다. ^^ 이 문제로 고통받는 다른 분이 더 없길 바랍니다. ㅠㅠ kaido 님 답변 감사드립니다. ^^ |
변종원(웅파)
/
2018/08/03 18:29:49 /
추천
0
selinux가 켜져있으면 보안관련 셋팅을 좀 빡시게(?) 합니다.
|
ses는 사용자 인증 컨펌을 한번 받아야 하는걸로 기억합니다.
aws에서 test 는 바로 되는데, 끌어다 쓸려면 인증요청을 한번 받아야 합니다.