리눅스 + 파이썬 이용해서 메일 보내는 방법이다.
- 우선 리눅스에서 아무이름으로 아래 내용처럼 .py파일을 만들어준다
#!/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
# 아이디 비밀번호 정보
email_from = '???@naver.com' #보내는이 메일주소
email_to = '94.mogi@gmail.com' #받는이 메일주소
naver_id ='????' #네이버 아이디 입력
naver_pass = 'qwe123!@#' #패스워드 입력
# 제목 입력
subject = '테스트 메일'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = subject
# 본문 내용 입력
body = '테스트 메일입니다.'
msg.attach(MIMEText(body,'plain'))
#첨부 파일 보내기
filename='aa.txt' #첨부 파일 이름 이처럼 이름만쓰려면 같은 경로에 파일있어야됨 아니면 절대경로입력
attachment =open(filename,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.naver.com',587) #네이버 smtp서버 지정
server.starttls()
server.login(naver_id,naver_pass)
server.sendmail(email_from,email_to,text)
server.quit()
~
- 아래 이미지를 보면 test.py 랑 aa.txt 파일이 있다 ./test.py 명령어를 통해 실행시켜주면 메일발송
- './파일이름' 방식으로 실행시키는데 권한이 없어서 안될수도 있다 그럴땐 'chmod +x 파일명' 명령어로 실행권한을 추가해준다
- 지메일 확인시 메일 도착한걸 확인할수 있다.
- 이후 crontab -e 명령어를 통해 아래와 같이 매일 오전 9시에 실행시키게 하면 매일 자동발송 가능
crontab -e
00 09 * * * ./tmp/test.py
혹시나 위와같이 했는데 메일이 전송 안된다면 네이버 메일에 smtp 허용이 되어 있는지 확인이 필요하다
네이버 메일 설정쪽에서 smtp 사용함으로 설정후 확인하면됨 아마 허용되있는게 디폴트값이였던것같다.
'리눅스' 카테고리의 다른 글
[리눅스/스크립트] 스크립트로 bonding 하기 (0) | 2020.06.21 |
---|---|
[Centos6,heartbeat] heartbeat을 이용한 이중화 방법 (0) | 2020.05.31 |
[리눅스] 쉘 스크립트 이용해서 DB백업하기 (0) | 2020.05.17 |
[리눅스] 커맨드 기록하기 (0) | 2020.05.17 |
서버 원격 접속프로그램 추천 [ MobaXterm ] (0) | 2020.05.10 |