今天在测试,阿里云服务器发邮件时,发现使用默认的25端口,邮件无法正常发送,查了相关的资料,才知道,大部分的云服务器都会禁用25端口,所以才想到使用ssl 发送。
下面为具体的python3 使用ssl端口发邮件配置,邮箱服务器为163的企业邮箱
#/usr/bin/env python
#-*- coding:utf-8 -*-
from email.mime.text import MIMEText
from email.header import Header
import smtplib message ='''
哎呀,tomcat进程怎么不够数了,快检查下。。
''' msg = MIMEText(message,'plain','utf-8') msg['Subject'] = Header("来之服务器的报警",'utf-8')
msg['From'] = Header('warning@xxx.net')
msg['To'] = Header('receiver','utf-8') from_addr = 'warning@xxx.net' #发件邮箱
password = 'yourpwd' #邮箱密码(或者客户端授权码)
to_addr = 'tch@xxx.com' #收件邮箱 smtp_server = 'smtp.ym.163.com' #企业邮箱地址,若是个人邮箱地址为:smtp.163.com try:
server = smtplib.SMTP_SSL(smtp_server,994) #第二个参数为默认端口为25,这里使用ssl,端口为994
print('开始登录')
server.login(from_addr,password) #登录邮箱
print('登录成功')
print("邮件开始发送")
server.sendmail(from_addr,to_addr,msg.as_string()) #将msg转化成string发出
server.quit()
print("邮件发送成功")
except smtplib.SMTPException as e:
print("邮件发送失败",e)