티스토리 뷰
반응형
Python으로 SMTP를 이용한 이메일 발송하기: 본문과 첨부파일 포함
파이썬을 사용하여 SMTP(Simple Mail Transfer Protocol)를 통해 이메일을 보내는 방법에 대해 알아보겠습니다. 본문과 첨부파일을 포함한 이메일을 발송하는 과정을 단계별로 설명하겠습니다.
필요한 라이브러리
파이썬에서 이메일을 보내기 위해 smtplib와 email 라이브러리를 사용합니다. smtplib는 SMTP 프로토콜을 사용하여 이메일을 전송하고, email 모듈은 이메일 메시지를 구성하는 데 도움을 줍니다.
기본 코드 구조
아래의 코드는 SMTP를 이용해 이메일 본문과 첨부파일을 보내는 기본적인 구조입니다.
코드 설명
- SMTP 서버 설정: 사용하려는 SMTP 서버의 주소와 포트, 이메일 주소 및 비밀번호를 설정합니다.
- MIMEMultipart 객체 생성: 이메일 메시지를 구성하기 위해 MIMEMultipart 객체를 생성합니다.
- MIMEApplication 사용: MIMEApplication을 사용해 첨부파일을 생성하고, with open(...) 문으로 파일을 열어 읽습니다. 이렇게 하면 파일을 안전하게 열 수 있습니다.
- 파일 이름 설정: filename 헤더를 설정할 때 attachment_path.split('/')[-1]로 파일 이름만 추출하여 사용합니다.
- 본문 추가: MIMEText를 사용하여 이메일 본문을 추가합니다.
- 첨부파일 추가: 첨부파일을 열고 MIMEBase를 사용하여 첨부합니다. 파일을 인코딩하고 헤더를 설정합니다.
- SMTP 서버 연결 및 이메일 전송: SMTP 서버에 연결한 후, 이메일을 전송합니다. 오류가 발생할 경우 예외 처리를 통해 오류 메시지를 출력합니다.
- 사용 예시: send_email 함수를 호출하여 이메일을 전송합니다.
주의사항
- SMTP 서버 주소와 포트 번호는 사용하는 메일 서비스에 따라 다를 수 있습니다. 예를 들어, Gmail의 경우 SMTP 서버 주소는 smtp.gmail.com이고 포트는 587입니다.
- 보안상 비밀번호를 코드에 직접 입력하기보다는 환경 변수나 별도의 설정 파일을 사용하는 것이 좋습니다.
- 이메일을 전송하기 전에 SMTP 서버에서 "보안 앱의 접근"을 허용해야 할 수도 있습니다.
결론
이제 Python을 사용하여 이메일 본문과 첨부파일을 포함한 이메일을 쉽게 보낼 수 있습니다. 위의 코드를 바탕으로 필요에 따라 수정하여 사용할 수 있습니다. 추가적인 질문이 있으시면 언제든지 댓글로 남겨주세요!
'Python Programming' 카테고리의 다른 글
[Python] Slack Webhook을 사용하여 메시지 보내는 방법 (6) | 2024.10.25 |
---|---|
Python의 match-case 문: (Switch-case 문) (0) | 2024.10.21 |
Python의 __init__ 메서드와 Java의 생성자 비교 (0) | 2024.10.20 |
Python 에서 __name__ == '__main__' 설명과 예제 (1) | 2024.10.20 |
Python에서 문자열을 정수로 변환하는 방법 (0) | 2024.10.17 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- du 명령어
- slack api
- Karabiner-Elements
- 프로젝트 생성
- vscode
- 장고
- win7
- df 명령어
- python slack
- 파이썬
- cmd실행
- END key
- channel oauth
- cmd창
- HOME/END
- http 요청
- venv
- angular
- python message
- 미밴드
- webhook
- 메시지 전송
- 미밴드4
- 디스크 사용량
- django
- Python
- HOME key
- win10
- 팀 소통
- amaztools
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함