파이썬 기초문법 - 멋사강의
SMTP: 간단하게 메일을 보내기위한 약속
이메일을 클라이언트가 서버로 보낼때 SMTP 쓰임
이메일 서버간의 메일전송에도 SMTP 쓰임
반대로 서버에서 클라이언트로 전송시: IMAP
imap설정 허용했다.
SMTP 서버도 주소가 있음 이를테면,
Address: smtp.gmail.com
port: 465
smtplib : SMTP 활용을 좀 더 쉽게 해주는 라이브러리
사전작업: 구글G메일에서 설정 변경
구글 계정관리에서 설정 변경
MIME : 전자우편을 보낼때 표준 형태
email.message모듈 .EmailMessage 기능을 이용해서
MIME으로 자동 적용 가능
// 이메일에 사진넣기
이미지 정보를 컴터가 읽을 수 있게 표기: binary
import smtplib //내장 라이브러리
from email.message import EmailMessage // MIME 기능
import imghdr // 이미지 확장자 인식 모듈
import re // 정규표현식 사용가능(reg~~ 줄임말)
// SMTP 접속을 위한 서버, 계정 설정
SMTP_SERVER = "smtp.gmail.com"
// google의 SMTP server 포트 주소는 465(gmail 지정 포트번호)
SMTP_PORT = 465
def sendEmail(addr):
reg = "^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$"
if bool(re.match(reg,addr)):
smtp.send_message(message)
print("정상적으로 메일이 발송되었습니다.")
else:
print("유효한 이메일 주소가 아닙니다.")
message = EmailMessage() // 메시지 모듈 사용
message.set_content("코드라이언 메일링 수업 - 본문입니다.") // 본문내용 넣기
**// MIME에서 헤더부분에 들어가기 때문에 이렇게 지정!**
message["Subject"] = "코드라이언 메일링 수업입니다."
message["From"] = "###@gmail.com"
message["To"] = "###@gmail.com"
// 내용에 사진넣기
// open() - codelion.png / rb(read binary) 모듈 사용
// png파일을 rb모드로 읽어서 바이너리 내용을 저장
// image = open("codelion.png","rb") 아래와 동일
// close 없이도 파일 닫을필요 없이 image라고 읽어드림
// 자동으로 닫기게 됨
with open("codelion.png","rb") as image:
image_file = image.read()
mime 중 multipart/mixed 타입의 메일
==> add_attachment(...)
==> 필요내용: 1. image, 2. maintype(image or?), 3. subtype(확장자)
subtype가 jpg 등으로 바뀟 수 있으므로
imghdr 모듈을 불러와서 활용
image_type = imghdr.what('파일명',image_file)
message.add_attachment(image_file,maintype='image', subtype='image_type')
// 서버에 연결(보안문제로 SSL 암호화 방식 필수 포함)
smtp = smtplib.SMTP_SSL(SMTP_SERVER,SMTP_PORT)
// 서버에 로그인(별다른 내용표기는 없음) just 기능
smtp.login("###@gmail.com","######")
// 아이디 유효성 확인 후 메시지 보내는 기능
is_valid("###@gmail.com")
// (message) ==> 아까 넣었던 변수
if smtp.send_message(message)=={} :
print("성공적으로 메일을 보냈습니다.")
smtp.quit()
완결판
import smtplib
from email.message import EmailMessage
import imghdr
import re
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 465
def sendEmail(addr):
reg = "^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$"
if bool(re.match(reg,addr)):
smtp.send_message(message)
print("정상적으로 메일이 발송되었습니다.")
else:
print("유효한 이메일 주소가 아닙니다.")
message = EmailMessage()
message.set_content("코드라이언 수업중입니다.")
message["Subject"] = "이것은 제목입니다."
message["From"] = "###@gmail.com"
message["To"] = "###@gmail.com"
with open("codelion.png","rb") as image:
image_file = image.read()
image_type = imghdr.what('codelion',image_file)
message.add_attachment(image_file,maintype='image',subtype=image_type)
smtp = smtplib.SMTP_SSL(SMTP_SERVER,SMTP_PORT)
smtp.login("###@gmail.com","######")
// 메일을 보내는 sendEmail 함수를 호출해서 실행해보기
sendEmail("###gmailcom")
smtp.quit()
실습으로 익히는 파이썬 기본문법 pt.4 (0) | 2022.05.27 |
---|---|
실습으로 익히는 파이썬 기본문법 pt.3 (0) | 2022.05.27 |
실습으로 익히는 파이썬 기본문법 pt.2 (0) | 2022.05.27 |
실습으로 익히는 파이썬 기본문법 pt.1 (0) | 2022.05.27 |
댓글 영역