Прежде всего, я не очень хорош в английском sh, поэтому я буду благодарен за вас, если вы поймете меня о моих навыках английского. Я пытался отправить электронную почту с помощью SMTP от Google. Но у меня есть некоторые проблемы с UTF-8. Я пытался найти решения, но мне не удалось. Помогите мне найти решение.
Вот мой код.
# -*- coding: utf-8 -*-
def send_with_gmail(body):
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
gmail_user = 'ychu1235@gmail.com' # 실제 google 로그인할 때 쓰는 ID
gmail_pw = 'This is hide security' # 실제 google 로그인할 때 쓰는 Password
from_addr = 'ychu1235@gmail.com' # 보내는 사람 주소
to_addr = 'ychu123@naver.com' # 받는 사람 주소
msg=MIMEMultipart('alternative')
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = 'Send email with Gmail' # 제목
msg.attach(MIMEText(body, 'plain', 'utf-8')) # 내용 인코딩
########################
# https://www.google.com/settings/security/lesssecureapps
# Make sure less_secure_apps select 'use'
########################
try:
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pw)
server.sendmail(from_addr, to_addr, msg.as_string())
server.quit()
print('successfully sent the mail')
except BaseException as e:
print("failed to send mail", str(e))
if __name__ == '__main__':
send_msg = '''
multi
L
I
N
E
'''
send_with_gmail(send_msg)
, и я получил этот вывод. failed to send mail 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte