整理一下,python 腳本發郵件的函數。
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
def sendMail():
'''
發送郵件
'''
# 發件人的郵箱賬号
sender = "****@****"
# 發件人的郵箱密碼
sender_password = "****"
# 收件人的郵箱賬号
receiver_mail_adress = ["****@****"]
# 抄送人的郵箱賬号
cc_mail_address = ["****@****", "****@****", "****@****", "****@****"]
#郵件正文
body = '''
****
'''
msg = MIMEMultipart()
#郵件主題
msg["Subject"] = Header("***", "utf-8")
#郵件發件人
msg["From"] = Header("***", "utf-8")
#郵件收件人
msg["To"] = Header("***", 'utf-8')
#郵件抄送
msg['Cc'] = ','.join([u"**", u"**", u"**", u"**"])
#郵件正文
msg.attach(MIMEText(body, 'html', 'utf-8'))
# 附件
att1 = MIMEText(open("********", 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
# filename 我寫成中文就亂碼,還是先英文
att1["Content-Disposition"] = 'attachment; filename= ****'
msg.attach(att1)
# 發送郵件
try:
server = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
server.login(sender, sender_password)
server.sendmail(sender, receiver_mail_adress + cc_mail_address, msg.as_string())
server.quit()
except smtplib.SMTPException as e:
raise e
if __name__ == "__main__":
sendMail()