116 lines
3.2 KiB
Plaintext
116 lines
3.2 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "fd42a4ef-69dd-47ab-b6bb-4fdf7587609c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import smtplib\n",
|
|
"from email import encoders\n",
|
|
"from email.mime.base import MIMEBase\n",
|
|
"from email.mime.multipart import MIMEMultipart\n",
|
|
"from email.mime.text import MIMEText\n",
|
|
"from email.encoders import encode_base64\n",
|
|
"import os\n",
|
|
"from dotenv import load_dotenv"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "5ea6bafe-e7ed-421e-94c6-599c77543f8c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"True"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"load_dotenv()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "fb91db25-baa0-48c0-b34d-2c3c5d19cb29",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"SMTP_SERVER = os.getenv(\"SMTP_SERVER\") # 네이버 smtp, 보내는 서버 기준 smtp 도메인 확인\n",
|
|
"SMTP_USER_ID = os.getenv(\"SMTP_USER_ID\") # 송신자 ID / 현재는 SMTP 서버 로그인 + 송신자\n",
|
|
"SMTP_USER_PW = os.getenv(\"SMTP_USER_PW\") # 송신자 PW / 네이버의 경우 SMTP전용 PW 발급\n",
|
|
"SMTP_PORT = os.getenv(\"SMTP_PORT\")# SMTP PORT, 기본 587"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "e524d0c9-3b73-4c3a-9d0a-b095b57bfdcf",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"TARGET_FILE_PATH = \"c:/o2o/smtp-mail-send-test/data/테스트피디엪.pdf\" # 파일 경로\n",
|
|
"file_name = \"테스트 pdf.pdf\" # 첨부파일명\n",
|
|
"part = MIMEBase('application', \"octet-stream\")\n",
|
|
"part.set_payload(open(TARGET_FILE_PATH,\"rb\").read())\n",
|
|
"encode_base64(part)\n",
|
|
"part.add_header('Content-Disposition', 'attachment', filename=file_name)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "6bea233d-d0ad-4765-bdc6-4d66b4a6d9a7",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"reciever = \"jhyeu@o2o.kr\" # 수신자\n",
|
|
"with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as smtp:\n",
|
|
" smtp.starttls()\n",
|
|
" smtp.login(SMTP_USER_ID, SMTP_USER_PW)\n",
|
|
" content = \"This is an automated message being sent by Python. Python is the mastermind behind this.\"\n",
|
|
" msg = MIMEMultipart()\n",
|
|
" msg['From'] = SMTP_USER_ID\n",
|
|
" msg['Subject'] = '메일 발송 시험'\n",
|
|
" msg['To'] = reciever\n",
|
|
" \n",
|
|
" body = MIMEText(content, _charset='utf-8')\n",
|
|
" msg.attach(body)\n",
|
|
" msg.attach(part)\n",
|
|
" smtp.sendmail(SMTP_USER_ID, reciever, msg.as_string())\n",
|
|
" "
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.13.9"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|