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