RPA

웹 자동화

Zoo_10th 2024. 6. 8.

1. E-Mail

1-1. SMTP

SMTP(Simple Mail Transfer Protocol)는 이메일 전송을 위한 표준 프로토콜이다. 이는 인터넷을 통해 이메일 메시지를 전송하는 데 사용되는 규약으로, 이메일 시스템의 중요한 구성 요소 중 하나이다.

1) SMTP의 주요 기능과 특징

 ① 메일 발송 처리

SMTP는 이메일을 발송하는 과정에서 사용된다. 사용자가 이메일 클라이언트(예: Microsoft Outlook, Gmail)를 사용해 메일을 보낼 때, 해당 메일은 SMTP를 사용하는 메일 서버로 전송됩니다.

 ② 프로토콜 규약

SMTP는 이메일을 주고받기 위한 표준 프로토콜로, 이를 통해 다른 이메일 서버들과 메시지를 교환할 수 있다.

 ③ IMAP과의 차이점

SMTP는 주로 메일 발송에 사용되는 반면, IMAP(Internet Message Access Protocol)은 이메일을 받아서 읽는 데 사용된다. IMAP은 사용자가 서버에 저장된 메일을 조회하고 관리할 수 있게 해준다.

 ④ MIME 지원

SMTP는 MIME(Multipurpose Internet Mail Extensions) 형식을 지원한다. MIME은 텍스트 외에도 이미지, 오디오, 비디오 등 다양한 형태의 멀티미디어 콘텐츠를 이메일 메시지에 포함할 수 있게 하는 표준이다. 이를 통해 사용자는 다양한 형식의 첨부 파일을 이메일에 포함시킬 수 있다.

 ⑤ 메일 전송 요청

이메일을 보낼 때, SMTP 서버는 보내는 사람의 이메일 클라이언트로부터 메시지를 받아 수신자의 메일 서버로 전송한다. 이 과정에서 메일은 MIME 형식으로 구성되어 서버 간에 전송된다.

1-2. Google

1) 구글 계정 보안 설정

  ①SMTP 설정하기

  ② 계정 설정

2) 단순한 이메일 보내기

메일을 보내기 위해 SMTP(Simple Mail Transfer Protocol)와 MIME(Multipurpose Internet Mail Extensions)를 사용하는 과정이다.

 ① 메일 작성 및 MIME 형식 사용

   - 메일 내용 준비 : 우선, 보내고자 하는 메일의 내용을 준비한다. 이때 텍스트만 있는 경우에도 MIME을 사용할 수 있다.

   - MIME 사용의 중요성 : MIME은 다국어 지원, 파일 첨부, HTML 형식의 이메일 등 복잡한 형식의 이메일을 지원하기 위해 필요하다. 특히 다양한 형식의 첨부 파일이나, 다양한 문자 인코딩을 사용하는 경우 MIME이 필수적이다.

   - MIME 형식으로 변환 : 이메일 클라이언트는 자동으로 이메일 내용을 MIME 형식으로 변환하여, 텍스트 이외의 콘텐츠(예: 이미지, PDF 파일)를 이메일과 함께 전송할 수 있도록 한다.

 ② SMTP를 통한 메일 전송

   - SMTP 서버 설정 : 이메일 클라이언트(예: Outlook, Gmail 등)에서 SMTP 서버의 주소와 포트를 설정한다. 이는 일반적으로 이메일 제공업체에 의해 제공된다.

   - 인증 과정 : 대부분의 SMTP 서버는 보안을 위해 사용자 이름과 비밀번호를 통한 인증을 요구한다. 이메일 클라이언트에서 이러한 인증 정보를 입력해야 한다.

   - 메일 전송 요청 : 메일 내용과 수신자 정보를 입력한 후, 이메일 클라이언트는 SMTP 프로토콜을 사용하여 메일 서버에 전송 요청을 한다.

   - 서버의 처리 : SMTP 서버는 메일을 받아 수신자의 메일 서버로 전송한다. 이 과정에서 필요한 경우 여러 메일 서버를 거쳐 최종 목적지로 메일이 전달된다.

 ③ 보안 고려 사항

   - SSL/TLS 사용 : 메일 전송 시 보안을 위해 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)를 활성화하여 데이터를 암호화하는 것이 좋다. 이는 중간에 메일이 가로채지거나 조작되는 것을 방지한다.

import smtplib
from email.mime.text import MIMEText

# 발신자 및 수신자 이메일 설정
sender_email = "your_email@gmail.com"
recipient_email = "recipient_email@example.com"
password = "your_password"  # 구글 계정 비밀번호

# SMTP 서버 설정
smtp_server = "smtp.gmail.com"  # Gmail SMTP 서버 주소
smtp_port = 587  # SMTP 포트 번호 (TLS용)

# 이메일 내용 설정
email_body = "여기에 메일 본문 내용을 작성하세요."
message = MIMEText(email_body)  # MIMEText 객체 생성

# 이메일 헤더 설정
message['Subject'] = "여기에 메일 제목을 작성하세요"
message['From'] = sender_email
message['To'] = recipient_email

# 메시지 문자열로 변환
message_str = message.as_string()

# SMTP 서버 연결 및 로그인
server = smtplib.SMTP(smtp_server, smtp_port)  # SMTP 서버 연결
server.starttls()  # TLS 보안 활성화
server.login(sender_email, password)  # 로그인

# 이메일 전송
server.sendmail(sender_email, recipient_email, message_str)

# SMTP 서버 연결 종료
server.quit()

3) 파일 첨부 메일 발송

파일 첨부가 필요한 이메일을 전송하기 위해서는 MIMEMultipart를 사용하여 여러 MIME 객체를 하나의 메시지로 결합할 수 있다. 이를 위해 먼저 텍스트 본문을 MIMEText 객체로 만들고, 첨부 파일을 MIMEApplication (또는 파일 유형에 따라 MIMEImage, MIMEAudio 등)을 사용하여 만든다. 그 후, 이 모든 것을 MIMEMultipart 객체에 추가한다. 다음은 파일을 첨부하는 이메일을 전송하기 위한 Python 코드 예제다.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

# 발신자 및 수신자 이메일 설정
sender_email = "your_email@gmail.com"
recipient_email = "recipient_email@example.com"
password = "your_password"  # 구글 계정 비밀번호

# SMTP 서버 설정
smtp_server = "smtp.gmail.com"
smtp_port = 587

# MIMEMultipart 객체 생성
msg = MIMEMultipart()

# 이메일 헤더 설정
msg['Subject'] = "이메일 제목"
msg['From'] = sender_email
msg['To'] = recipient_email

# 이메일 본문 추가
text = "이메일 본문 내용"
msg.attach(MIMEText(text, 'plain'))

# 파일 첨부
file_path = "path/to/your/file.ext"  # 첨부할 파일 경로
with open(file_path, "rb") as file:
    part = MIMEApplication(
        file.read(),
        Name=file_path.split('/')[-1]  # 파일명 추출
    )
# 파일의 header 정보 추가
part['Content-Disposition'] = 'attachment; filename="%s"' % file_path.split('/')[-1]
msg.attach(part)

# SMTP 서버 연결 및 로그인
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(sender_email, password)

# 이메일 전송
server.sendmail(sender_email, recipient_email, msg.as_string())

# SMTP 서버 연결 종료
server.quit()

① MIMEMultipart 객체를 생성하여 이메일의 컨테이너로 사용한다.

② 이메일의 본문을 MIMEText 객체로 만들어 MIMEMultipart 객체에 첨부한다.

③ 첨부할 파일을 바이너리 모드(rb)로 열고, MIMEApplication 객체를 생성하여 파일 내용을 담는다. 파일명을 헤더에 추가한다.

④ 생성한 MIMEApplication 객체를 MIMEMultipart 객체에 첨부한다.

⑤ SMTP 서버에 연결하여 이메일을 전송하고 연결을 종료한다.

1-3. Naver

1) SMTP

 

애플리케이션 비밀번호 사용 방법 (아웃룩 등 2단계 인증 미지원 환경에서 로그인) : 회원정보 고

아웃룩, 휴대전화 기본 메일앱, 캘린더앱 등 일부 애플리케이션은 2단계 인증을 지원하지 않습니다.​미지원 환경에서는 먼저 비밀번호를 생성한 후 애플리케이션 화면에서 생성된 비밀번호를

help.naver.com

네이버 메일 접속후 하단의 환경설정 > POP/IMAP 설정 선택

import smtplib
from email.mime.text import MIMEText

# 발신자 및 수신자 이메일 설정
sender_email = "your_email@gmail.com"
recipient_email = "recipient_email@example.com"
password = "your_password"  # 네이버 계정 비밀번호

# SMTP 서버 설정
smtp_server = "smtp.naver.com"  # 네이버 SMTP 서버 주소
smtp_port = 587  # SMTP 포트 번호 (TLS용)

# 이메일 내용 설정
email_body = "여기에 메일 본문 내용을 작성하세요."
message = MIMEText(email_body)  # MIMEText 객체 생성

# 이메일 헤더 설정
message['Subject'] = "여기에 메일 제목을 작성하세요"
message['From'] = sender_email
message['To'] = recipient_email

# 메시지 문자열로 변환
message_str = message.as_string()

# SMTP 서버 연결 및 로그인
server = smtplib.SMTP(smtp_server, smtp_port)  # SMTP 서버 연결
server.starttls()  # TLS 보안 활성화
server.login(sender_email, password)  # 로그인

# 이메일 전송
server.sendmail(sender_email, recipient_email, message_str)

# SMTP 서버 연결 종료
server.quit()

 

728x90

'RPA' 카테고리의 다른 글

사무 자동화  (0) 2024.06.10
RPA (Robot Process Automation)  (0) 2024.06.08

댓글