Python - Daum 메일 보내기

on under python
1 minute read

Django는 django.core.mail.send_mail을 통해서 메일을 발송하도록 하고 있다.

온라인 상의 메일 발송 예제는 대부분 gmail을 기준으로 한다.

>>> from django.core.mail import send_mail
>>> send_mail('Django mail', 'This e-mail was sent with Django.',
'your_account@gmail.com', ['your_account@gmail.com'], fail_
silently=False)

하지만, 실제로 업무에서 사용할 때는 Daum이나 Naver 메일로 발송을 해야 하는 경우들이 종종 있다.

그래서 Django의 send_mail을 이용해서 발송하려 했지만, 실패했다.

Django setting에서 EMAIL_USE_SSL를 통해 SSL로 접속해도 계속 실패했다.

국내 메일의 SMTP를 사용하려면 smtplib 모듈이 필요하다.

>>> from smtplib import SMTP_SSL
>>> toEmail = 'abmu333@hanmail.net'
>>> fromEmail = 'neverlandpan@hanmail.net'
>>> titleEmail = 'Test Title'
>>> body = "한글 테스트 메일"
>>> body = str(body)
>>> msg = "\r\n".join(["From: " + fromEmail, "To: " + toEmail, "Subject: " + titleEmail, "", body])
>>> conn = SMTP_SSL('smtp.daum.net:465')
>>> conn.ehlo()
>>> conn.login(user, pw)
(235, b'PLAIN authentication successful for DaumID - auth_daum')
>>> conn.sendmail(fromEmail, toEmail, msg)
>>> conn.close()

메일 발신까지는 몇 분의 시간차가 있다.

주의 할 점은 한글을 사용시 UnicodeEncodeError가 발생한다. string으로 형변환을 해주면 해결된다. 그리고 SMTP로 발송하면 다음의 메일 콘솔창에서 메일 발송 이력이 남지 않는다.

출처 webisfree.com

python
comments powered by Disqus