안녕하세요.
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 세팅>
| Server Name: |
email-smtp.us-east-1.amazonaws.com |
| Port: | 25, 465 or 587 |
| Use Transport Layer Security (TLS): | Yes |
| Authentication: | Your SMTP credentials - see below. |
<오류 코드>
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는 처음 써보는거라서 막막하여 이렇게 질문 드립니다.
웅파님을 비롯한 선배님들 도와주세요. ㅠ_ㅠ
다시 구글링하다가 해결했습니다.;;;
제가 질문하려고 생각을 정리하다가 문제점을 찾은것 같습니다.
아무래도 CentOS의 sendmail 에서 권한을 수정해줘야 할 것 같다는 생각이 들어 구글링하던중
# setsebool httpd_can_sendmail 1
명령어로 바꿔줬더니 문제가 해결되었습니다. ^^
이 문제로 고통받는 다른 분이 더 없길 바랍니다. ㅠㅠ kaido 님 답변 감사드립니다. ^^
ses는 사용자 인증 컨펌을 한번 받아야 하는걸로 기억합니다.
aws에서 test 는 바로 되는데, 끌어다 쓸려면 인증요청을 한번 받아야 합니다.