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