1. 程式人生 > >smtplib,傳送郵件時的bug

smtplib,傳送郵件時的bug

import os
import smtplib

from email.mime.text import MIMEText

def send_mail(receiver):

mail_server = 'smtp.163.com'
sender_useranme = os.getenv('MAIL_USERNAME')
sender_password = os.getenv('MAIL_PASSWORD')

content = '<a href="www.baidu.com">點選完成驗證</a>'
message = MIMEText(content, 'html')
message['Subject'] = '使用者啟用'
message['From'] = sender_useranme

mail = smtplib.SMTP(mail_server)
mail.login(sender_useranme, sender_password)
mail.sendmail(sender_useranme, receiver, message)
mail.quit()

bug : TypeError: expected string or bytes-like object
需要將message物件格式化字串就OK了

mail.sendmail(sender_useranme, receiver, message.as_string())

有時候伺服器會把你傳送的郵件當成垃圾郵件處理,當檢查完程式碼都對的時候改一下message['Subject'] = '使用者啟用'這個的內容試試。