在阿里云用python发送邮件

需求

最近需要在公司的阿里云上进行某需求的预警通知,采用邮件通知的方式。

探索

经过了解,阿里云是默认屏蔽邮件端口25,即使在安全组设置的25端口依然不行。虽然可以官方申请开通25端口,但是现在都不给通过了。再经博客了解,发现可以使用邮件SSL端口465进行发送邮件。

执行

一、开通QQ邮箱SMTP服务(已开启则忽略)

1.登陆QQ邮箱,点击设置
在阿里云用python发送邮件_第1张图片
2.进入账户页面
在这里插入图片描述
3.页面滚动到最下面,看到开启服务,选择第一个POP3/SMTP服务最右边点击开启,然后根据提示进行操作开通,记下授权码,后面有用。
在阿里云用python发送邮件_第2张图片

二、代码测试

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 邮箱配置
SMTP_CONFIG = {
    "mail_host" : "smtp.qq.com",      	 # qq邮件服务器
    "mail_user" : "[email protected]",    	 # 用户名
    "mail_pass" : "xxxxxxxxxx",       	 # 授权码,上面开通qqSTMP服务的授权码
    "sender" : "[email protected]",     	 # 发送邮箱
    "receivers" : ['[email protected]']   # 接收邮箱,可多个任意邮箱
}
class SendMsg():
	def send_email(self, subject, content):
       # 第三方 SMTP 服务
       try:
            message = MIMEText(content, 'plain', 'utf-8')  # 发送内容
            message['Subject'] = Header(subject, 'utf-8')	# 发送标题
            message['From'] =  SMTP_CONFIG["sender"]		# 发送人
            message['To'] =  SMTP_CONFIG["receivers"][0]	# 接收人

            smtp = smtplib.SMTP_SSL(host=SMTP_CONFIG["mail_host"], port=465)  # 465是邮件ssl端口
            smtp.login(SMTP_CONFIG["mail_user"] ,SMTP_CONFIG["mail_pass"])    # 服务器登录  
            smtp.sendmail(SMTP_CONFIG["sender"], SMTP_CONFIG["receivers"], message.as_string())
            smtp.close()
            print("邮件发送成功")
        except smtplib.SMTPException:
            print("发送失败")
	            
if __name__ == "__main__":
    SendMsg().send_email("testjob","testjob")

结果

邮件发送成功
在阿里云用python发送邮件_第3张图片

你可能感兴趣的:(在阿里云用python发送邮件)