이메일을 보내는 파이썬 스크립트를 단독 실행했을 때는 분명 잘 되는데, crontab 에 등록을 하니 위와 같은 에러가 뜨면서 메일이 발송되지 않았다.
나의 경우는 MTA 에 등록된 hostname 과 파이썬 스크립트에 등록된 hostname 이 일치하지 않아서 생긴 문제였다.
https://tsy0668.tistory.com/11
이 블로그 설정을 참고하여 서버의 hostname 설정을 올바르게 해주고 postfix 를 설치한다.
여기에 설정한 hostname에 맞게 sendmail 메소드를 실행할 때 넣는 이메일을 적어주면 된다.
나는 hostname 을 everdu.com 으로 설정해주고 아래와 같이 스크립트를 수정하였다.
sendmail 메소드로 넘기는 이메일 주소와 이메일 전송을 위해 gmail에 로그인한 account 가 동일할 필요가 없다는 것을 이 사례를 해결하면서 알게 되었다.
(test@everdu.com 이라는 이메일은 내가 만든적이 없는 이메일이다. 다만 hostname을 맞추기 위해 임의로 작성한 이메일이다.)
이렇게 이메일 전송을 해도, 실제 전송된 이메일의 보낸 이메일은 gmail 에 로그인한 account 이다.
이렇게 수정한 뒤, 아래와 같이 파이썬 스크립트를 실행하는 명령어를 배쉬 스크립트로 작성한다.
crontab 에서 이 오류가 발생할 때는 경로를 절대 경로로 적어주어야 한다는 내용을 보게 되어, 쉘 스크립트도 모두 절대경로로 작성하였다.
crontab 에서 실행하는 파일도 절대경로로 적어주었다.
프로그램까지 절대경로로 적어야 된다는 해결책도 보았지만, bash 는 절대경로로 적지 않아도 괜찮았다.
매 정시마다 메일을 보내도록 하였다.
오후 1시에 메일을 보낼 때도 이렇게 동일한 오류가 발생하는듯 보이나
실제로는 이메일이 잘 전송되었음을 확인할 수 있었다.
'Infra > 오라클 클라우드' 카테고리의 다른 글
[오라클 클라우드] 서버 재시작 메뉴얼 (24.04.27 update) (0) | 2024.04.27 |
---|---|
[오라클 클라우드] curl 에서 'no route to host' 가 뜨는데 핑은 잘 가는 경우 (feat. ChatGPT) (0) | 2023.03.17 |
[Powershell] ssh 인스턴스 원격 접속 방법 (0) | 2022.08.14 |
안드로이드에서 MySQL(MariaDB) 원격 접속하기 (0) | 2022.06.07 |
[오라클 클라우드(Oracle Cloud)] Toad for MySQL SSH 접속하기 (0) | 2021.04.10 |