今天在测试,阿里云服务器发邮件时,发现使用默认的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)