I need to send out an email in python3, below is the script and it failed with an error of:
'bytes' object has no attribute 'encode'
import smtplib
from email.mime.text import MIMEText
from email.message import EmailMessage
att1 = [u'201902260920AM.log']
msg = MIMEText("EmailOperator testing email.")
msg['Subject'] = "EmailOperator testing email."
msg['From'] = "[email protected]"
msg['To'] = "[email protected]"
msg['files'] = str(att1).encode("UTF-8")
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit()
What's the right way to send out an email with attachment?
Much appreciated if anyone can enlighten me here, thank you in advance.
UPDATE1: you can run the above code in python3 and you will receive the error
UPDATE2: Indeed the actual log files I want to attach would be something like this:
'/home/pasle/airflow/logs/pipeline_client1/send_email/2019-02-27T01:40:38.451894+00:00/1.log'
and I need to send emails with multiple attachments, thank you for your help.
att1
alist
object? So that is why it is showing byte error. – Radiogram