-
Notifications
You must be signed in to change notification settings - Fork 0
/
pysmtp.py
120 lines (95 loc) · 3.12 KB
/
pysmtp.py
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#-*- coding: utf-8 -*-
from email.header import decode_header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
import getpass
import imaplib
import email
# 사용자 정보
def showtext():
# 네이버 메일 서버 접속
imap = imaplib.IMAP4_SSL("imap.naver.com")
imap.login(username, password)
# 받은 편지함(Folder) 선택
imap.select("INBOX")
# 모든 메일 검색
_, mails = imap.search(None, "ALL")
# 메일 목록 출력
for mail_id in mails[0].split():
_, mail = imap.fetch(mail_id, "(RFC822)")
# 메일 정보 파싱
msg = email.message_from_bytes(mail[0][1])
subject = decode_header(msg["Subject"])[0][0]
sender = decode_header(msg["From"])[0][0]
# 출력
if isinstance(subject, bytes):
try:
print("Subject:", subject.decode("utf-8"))
except UnicodeDecodeError:
print("Subject:", subject)
else:
print("Subject:", subject)
if isinstance(sender, bytes):
try:
print("From:", sender.decode("utf-8"))
except UnicodeDecodeError:
print("From:", sender)
else:
print("From:", sender)
print("="*30)
# 네이버 메일 서버 접속 종료
imap.close()
imap.logout()
def sendmail():
# 메일 제목, 본문 내용 설정
subject = '테스트 메일'
content = '안녕하세요, 이것은 테스트 메일입니다.'
# 메일 생성
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = username
msg['To'] = yourmail
text = MIMEText(content)
msg.attach(text)
# SMTP 서버 설정
smtp_server = 'smtp.naver.com'
smtp_port = 587
smtp_tls = True
# SMTP 서버 연결
s = smtplib.SMTP(smtp_server, smtp_port)
s.starttls()
s.login(username, password)
# 메일 발송
s.sendmail(username, yourmail, msg.as_string())
# SMTP 서버 연결 종료
s.quit()
def sendfile():
# 이메일 메시지 작성
message = MIMEMultipart()
message["Subject"] = input("subject : ")
message["From"] = yourmail
message["To"] = recipient
text = MIMEText("안녕하세요, 이메일 보내기 테스트입니다.")
message.attach(text)
# 첨부 파일 추가
filename = "txts/test.txt"
with open(filename, "rb") as f:
attachment = MIMEApplication(f.read(), _subtype="txt")
attachment.add_header("Content-Disposition", "attachment", filename=filename)
message.attach(attachment)
# SMTP 서버 접속 및 이메일 보내기
smtp = smtplib.SMTP("smtp.naver.com", 587)
smtp.ehlo()
smtp.starttls()
smtp.login(yourmail, password)
smtp.sendmail(yourmail, recipient, message.as_string())
smtp.quit()
if __name__ == '__main__':
global username, password, yourmail, recipient
username = input("id : ")
password = getpass.getpass("password : ")
yourmail = username+'.naver.com'
recipient = input("sendmail : ")
showtext()