Python은 내장 라이브러리인 smtplib와 email.mime를 사용하여 이메일을 발송할 수 있습니다. 이를 이용한 간단한 이메일 발송 코드를 작성해보겠습니다.
챗지피에서 다음과 같은 프로프로 명령합니다. 아래 주소는 네이버 기준으로 메일발송 자동화를 시도해 보도록 하겠습니다.
명령 프롬프트 :
" https://nid.naver.com/nidlogin.login?url=https%3A%2F%2Fmail.naver.com%2F 에 로그인해서 자동메일 발송하는 파이썬 코드를 작성해줘"
위 프롬프트를 실행하면, 아래와 같은 결과를 보여줍니다(챗지피티)
Python은 내장 라이브러리인 smtplib와 email.mime를 사용하여 이메일을 발송할 수 있습니다. 이를 이용한 간단한 이메일 발송 코드를 작성해보겠습니다.
- 필요한 라이브러리를 불러옵니다:
- SMTP 서버를 설정하고, 발신자와 수신자, 그리고 메일의 제목과 본문을 정의합니다:
- 메일의 제목과 본문을 MIME 형식으로 구성합니다:
- SMTP 서버에 로그인하고 메일을 전송합니다:
이 프로그램은 Gmail을 사용하여 메일을 보내는 예제입니다. 다른 메일 서비스를 사용하려면 smtp_server와 smtp_port를 해당 메일 서비스의 SMTP 서버와 포트로 변경해야 합니다. 또한, 이메일 애플리케이션에 따라 보안 설정이 다를 수 있으므로, 이메일 서비스의 문서를 참조하시는 것이 좋습니다.
또한, 이 예제에서는 비밀번호를 직접 코드에 작성했지만, 실제로는 이런 방식은 안전하지 않습니다. 비밀번호를 안전하게 관리하는 방법을 찾아보시는 것이 좋습니다. 예를 들어, 환경 변수를 사용하거나, 외부에 공개되지 않는 별도의 설정 파일에 비밀번호를 저장하는 방법을 고려해보세요.
바드의 경우는 다음과 같은 결과 코드를 파이썬으로 출력해줍니다.
소스 코드는 다음과 같습니다.
import smtplib
# 발신자의 이메일 주소와 비밀번호를 입력하세요.
from_email = "your_email@example.com"
from_password = "your_password"
# 수신자의 이메일 주소를 입력하세요.
to_email = "to_email@example.com"
# 이메일 제목을 입력하세요.
subject = "This is a test email."
# 이메일 본문을 입력하세요.
body = "This is the body of the email."
# 이메일을 보냅니다.
with smtplib.SMTP("smtp.gmail.com") as smtp:
smtp.ehlo()
smtp.starttls()
smtp.login(from_email, from_password)
smtp.sendmail(from_email, to_email, subject, body)
print("이메일 발송 성공")
위 코드를 실행해보면 몇가지 에러가 발생합니다만, 여러분 에러 디버깅을 수행합니다.
아래와 같은 코드를 얻을 수 있습니다.
import smtplib
from getpass import getpass
from email.mime.text import MIMEText
from email.header import Header
import pandas as pd
# 네이버 아이디와 비밀번호를 읽어옵니다.
with open("/content/drive/MyDrive/Python/크룰링/pw.txt", "r") as f:
user_id, user_pw = map(str.strip, f.readlines())
# 엑셀 파일에서 이메일 수신자 리스트와 메일 내용을 불러옵니다.
df = pd.read_excel('email_list.xlsx') # 'email_list.xlsx'는 실제 엑셀 파일 경로로 변경해주세요.
emails = df.iloc[:, 0].tolist()
bodies = df.iloc[:, 1].tolist()
# SMTP 서버에 연결합니다.
with smtplib.SMTP("smtp.naver.com", 587) as smtp:
smtp.ehlo()
smtp.starttls()
# 네이버 로그인을 시도합니다.
try:
smtp.login(user_id, user_pw)
except smtplib.SMTPAuthenticationError:
print("이메일 인증 실패")
exit(1)
# 각 이메일 수신자에게 메일을 보냅니다.
for to_email, body in zip(emails, bodies):
subject = "This is a test email."
# MIME 메시지를 생성합니다.
msg = MIMEText(body.encode('utf-8'), _subtype='plain', _charset='utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = user_id + '@naver.com'
msg['To'] = to_email
# 메일을 전송합니다.
try:
smtp.sendmail(user_id + '@naver.com', to_email, msg.as_string())
print(f"이메일 발송 성공: {to_email}")
except Exception as e:
print(f"이메일 전송 중 에러 ({to_email}): {e}")
'시사뉴스' 카테고리의 다른 글
애플과 맥도날드 주식 1억씩 보유한다면, 배당금은 얼마나 받을 수 있을까? 바드 챗지피티 조사결과는?! (0) | 2023.05.13 |
---|---|
애플과 맥도날드 주식 1억씩 보유한다면, 배당금은 얼마나 받을 수 있을까? 바드 챗지피티 조사결과는?! (0) | 2023.05.13 |
챗지피티가 알려주는 구글 바드 사용법, 반면 바드가 말하는 바드는 ㅠ (1) | 2023.05.13 |
테슬라 주가 60% 상승이유? (2) | 2023.05.13 |
애플과 테슬라 전기자동화 2023 현황 (0) | 2023.05.12 |