자동이메일 코드입니다. 파이썬이구요, 노트북에서는 되고, 데스크탑은 오류가 납니다. gethostbyaddr 에서 UnicodeDecodeError
조회수 556회
데스크탑에서 오류가 나는데.. 이유를 아시는 분 설명 좀 부탁드립니다.
이틀동안 이것만 찾는데, 학습진도가 안나가서 질문드립니다.
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
import re
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 465
SMTP_USER = '************@gmail.com' # 아이디는 맞게 넣었습니다.
SMTP_PASSWORD = '0000000000000000' #16자리의 앱비밀번호 넣었습니다.
def send_mail(name, addr, subject, contents):
msg = MIMEMultipart('alternative')
msg['From'] = SMTP_USER
msg['To'] = addr
msg['Subject'] = name + '님, ' + subject
text = MIMEText(contents, _charset='utf-8')
msg.attach(text)
smtp = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT)
smtp.login(SMTP_USER, SMTP_PASSWORD)
smtp.sendmail(SMTP_USER, addr, msg.as_string())
smtp.close()
contents = '''안녕하세요. 되는지 함 봅시다.
자동화로 보내지는 메일입니다. '''
send_mail('*****', '*********@gmail.com', '자동화 메일입니다.', contents)
위 코드가 노트북에서는 작동합니다. 다만 데스크탑에서 실행하면
Traceback (most recent call last):
File "C:\Users\User\Desktop\업무자동화 MAX\올인원패키지-업무자동화max-강의자료\9. 파이썬 업무자동화 (Basic)\Basic\27th\27th-2.py", line 30, in <module>
send_mail('******', '********@gmailcom', '자동화 메일입니다.', contents)
File "C:\Users\User\Desktop\업무자동화 MAX\올인원패키지-업무자동화max-강의자료\9. 파이썬 업무자동화 (Basic)\Basic\27th\27th-2.py", line 21, in send_mail
smtp = smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT)
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 1034, in __init__
SMTP.__init__(self, host, port, local_hostname, timeout,
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 263, in __init__
fqdn = socket.getfqdn()
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\socket.py", line 791, in getfqdn
hostname, aliases, ipaddrs = gethostbyaddr(name)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continuation byte
이렇게 오류가 뜹니다.
인강으로 공부중인데 진도가 안나가서, 꼭 좀 도와주세요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
> hostname
명령으로 호스트네임을 확인해 보세요. 아마도 이 결과가 한글이 포함되어 있을 겁니다. 윈도우의 경우
PC의 이름 바꾸기
로 PC이름에 한글/특수문자등이 포함되지 않도록 하세요.
댓글 입력