今天在測試,阿里雲服務器發郵件時,發現使用默認的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)
