소프트웨어 command prompt 에서 메일 보내기
2018.12.17 11:18
이틀전에 "smtp 지원하는 이메일 계정이 있나요?" 라는 제목으로 질문/답변 게시판에 글을 남긴 적이 있습니다.
https://windowsforum.kr/index.php?mid=qna&search_keyword=smtp&search_target=title_content&document_srl=10977894
DarknessAngel님과 kungms님께서 답변글을 남겨주셨는데,
그 분들의 말대로 gmail, naver 모두 smtp 를 지원하더군요.
다른 곳에서도 smtp를 지원하겠지만, 제가 사용하고 있는 이메일 계정이 gmail 과 naver 이기 때문에
이 두가지에 대해서만 테스트를 해보고 예제를 준비했습니다.
command prompt 에서 이메일을 보낼만한 프로그램을 검색했는데, 마침 적당한 것을 찾을 수 있었습니다.
참조한 문서는 아래와 같습니다.
https://www.raymond.cc/blog/sending-email-using-command-line-useful-for-downtime-alert-notification/
혹 비슷한 다른 프로그램을 원하신다면 7가지 프로그램 중에서 적당한 것을 고르시면 됩니다.
저는 7가지 중에서 sendEmail 이라는 프로그램을 골랐습니다. (특별한 이유는 없고 그냥 이름이 직관적이었습니다.)
이 글을 읽으시면서 왜 무식하게 command prompt 의 검은 화면에서 글자를 모두 타이핑해야 되는 프로그램을 찾느냐고 하실 분도 계실 겁니다.
그 이유는 자동화와 관련됩니다.
특정 경우에 (저는 오류 발생시에 사용할 계획입니다.) 자동으로 이메일을 보낼려고 한다면 가장 간편한 방법이 command prompt 에서 구동되는 작은 프로그램을 연동하는 것입니다.
사용예를 보여드리겠습니다.
1) gmail
snddEmail.exe -o tls=yes -f sender@gmail.com -t recipient@email.com -s smtp.gmail.com:587 -xu sender@gmail.com -xp YourGmailPassword -u "제목" -m "본문내용" -o message-charset=utf-8 -a D:\a.bmp -a "D:\pdf 문서.pdf"
2) naver
sendEmail.exe -o tls=yes -f sender9@naver.com -t recipient@email.com -s smtp.naver.com:587 -xu sender@naver.com -xp YourNaverPassword -u "제목" -m "본문내용" -o message-charset=utf-8 -a D:\a.bmp -a "D:\pdf 문서.pdf"
-o message-charset=utf-8 이 없으면 한글로 된 제목/본문이 있을 때 글자가 깨집니다.
-a 다음에 첨부파일 명을 적어주면 됩니다.
첨부파일이 없으면 생략하면 됩니다.
그 외에도 여러 파라미터가 있는데, readme.txt 파일을 통해서 확인할 수 있습니다.
하지만 굳이 확인할 필요 없이 위에 제가 표기한 것을 그냥 그대로 따라 적기만 해도 될겁니다.
첨부파일이 없을 때는 -a 부분은 생략하면 됩니다.
gmail 을 통해서 메일을 보내면 인가되지 않은 앱이 접근했다고 경고메일이 날라오고, 메일이 보내지지 않습니다.
그런 경우에
google 계정-> 계정 액세스 권한을 가진 앱 -> 보안 수준이 낮은 앱 허용:사용
으로 변경하면 됩니다.
naver 는 경고가 뜨지 않습니다.
첨부파일은 테스트를 해보니 실행파일을 zip으로 압축해서 보냈을 때 gmail, naver 둘 다 보안상의 이유로 거절되었다는 메세지가 떴습니다.
참고하시기 바랍니다.
sendmail의 파라미터를 각각의 프로그래밍 언어를 통해서 넘겨주면 되기 때문에 조금이라도 프로그래밍에 대한 지식이 있으신 분들은 바로 사용하실 수가 있습니다. 이제 프로그램이 잘 돌아가는지 수시로 직접 가서 확인할 필요없이 오류가 발생하면 즉시 스마트폰을 통해서 경고 메일를 받을 수가 있게 되었습니다.
마지막으로 답변을 달아주신 DarknessAngel님과 kungms님께 감사드립니다.
댓글 [5]
-
과자 2018.12.17 13:40 -
닉네임20자 2018.12.28 17:31
감사합니다. 많은 도움이 될 것 같습니다. ^^
-
shot4u 2018.12.29 02:38
-m "본문내용" 을 삭제하고 대신에
-o message-file=에러파일경로 로 대체해 보세요.
에러파일 내용 전체가 본문 내용이 됩니다.
프로그래밍 하면서 코딩라인이 2000 라인을 넘어가면 에러처리와 현재 상태를 점검하는 부분이 정말 중요합니다. language에 관계없이 프로그래밍이 중급 이상 되시는 분들은 모두 동감하실 겁니다.
저는 에러가 발생할 때마다 혹은 상태 이상이 발견될 때마다 즉시 에러파일에 그 시간과 상세 내용이 append 되도록 프로그래밍합니다.
-
펨토 2019.01.29 10:47
안녕하세요.
sm sendEmail.exe[23784]: ERROR => smtp.gmail.com:465 returned a zero byte response to our query.
저는 이런식으로 오류가 납니다. 네이버도 동일한 오류가 발생하네요 ㅠㅠ
-
shot4u 2019.01.31 23:34
port 번호 정확하게 적은거 맞습니까?
현재 구글 smpt는 이용하지는 않고, naver를 통해서 메일을 보내고 있습니다.
매일 메일이 스마트폰을 통해서 전송되고 있네요. 잘 작동하고 있습니다.
내가 작성한 예제를 복사 붙여넣기 해서 노라색 부분만 수정해서 다시 해보십시오.
크헉~
뭔가 아날로그 같은
그러나 천재 같네요^_^)b