python3 使用ssl安全连接发送邮件

时间:2024-03-17 15:36:50

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