在阿里云用python发送邮件

需求

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

探索

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

执行

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

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

二、代码测试
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 邮箱配置
SMTP_CONFIG = {
    "mail_host" : "smtp.qq.com",      	 # qq邮件服务器
    "mail_user" : "xxxxxx@qq.com",    	 # 用户名
    "mail_pass" : "xxxxxxxxxx",       	 # 授权码,上面开通qqSTMP服务的授权码
    "sender" : "xxxxxxxx@qq.com",     	 # 发送邮箱
    "receivers" : ['xxxxxxxx@163.com']   # 接收邮箱,可多个任意邮箱
}
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")

结果

邮件发送成功
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值