原本本地代码:是完全可以发送邮件的,但是到阿里云服务器上就不行了
需要改为:当然这种也支持本地
完成代码:
# 发送邮件
import smtplib
from email.mime.text import MIMEText
#设置服务器所需信息
#163邮箱服务器地址
mail_host = 'smtp.163.com'
#163用户名
mail_user = 'sjjhub@163.com'
#密码(部分邮箱为授权码)
mail_pass = 'XXXXXXXXX'
#邮件发送方邮箱地址
sender = 'sjjhub@163.com'
#邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
receivers = ['648133599@qq.com']
#设置email信息
#邮件内容设置
message = MIMEText('content','plain','utf-8')
#邮件主题
message['Subject'] = 'title'
#发送方信息
message['From'] = sender
#接受方信息
message['To'] = receivers[0]
#登录并发送邮件
try:
#连接到服务器
# smtpObj = smtplib.SMTP()
# smtpObj.connect(mail_host,25)
# 在阿里云上就要改为下面这种,本地和服务器都友好:
smtpObj = smtplib.SMTP_SSL(mail_host, 465)
#登录到服务器
smtpObj.login(mail_user,mail_pass)
#发送
smtpObj.sendmail(sender,receivers,message.as_string())
#退出
smtpObj.quit()
print('success')
except smtplib.SMTPException as e:
print('error',e) #打印错误