爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20529|回复: 0

[源代码] Python自动化运维之发送邮件

[复制链接]

新浪微博达人勋

发表于 2021-4-13 16:22:03 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
开启SMTP服务.jpg
# -*- coding: utf-8 -*-
'''
首先要开通邮箱的SMTP功能,
我用的是163邮箱,开启SMTP服务的选项从[设置]中找,
开通SMTP服务时,邮箱会给一个口令:xxxxxx
发邮件的代码不需要自己邮箱的登录密码,而是使用该口令

我的邮箱地址为aaaaaa@163.com
邮件发给bbbbbb@qq.comcccccc@126.com
'''
import sys,os,smtplib,chardet
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.header import Header

# 邮箱的smtp服务器:
mail_host = "smtp.163.com"
# 不同邮箱的AMTP服务器不同
# 我用是163邮箱,其SMTP服务器如上
# 网页企业邮箱的SMTP服务器是smtphz.qiye.163.com

# 用户名:
mail_user = "aaaaaa"

# SMTP口令:
mail_pass = "xxxxxx"

# 发送人:
sender = "aaaaaa@163.com"

# 接收人列表:
receivers = ["bbbbbb@qq.com","cccccc@126.com"]

# 邮件内容对象:
message = MIMEMultipart()

# 构造发件人:
message["From"] = sender

# 构建收件人列表:
message["To"] = ";".join(receivers)

# 邮件标题:
message["Subject"] = "SMTP邮件测试"

# 邮件正文:
message.attach(MIMEText('''
<html><body>
<p><h2><b>各位同事:</b></h2></p>
<p><h2><i>报告见附件。</i></h2></p>
</body></html>
''', 'html', 'utf-8'))

# 添加附件:
att= MIMEText(open("报告.docx", "rb").read(), "base64", "utf-8")
att["Content-Type"] = "application/octet-stream"
att.add_header("Content-Disposition", "attachment", filename=("gbk","", "报告.docx"))
message.attach(att)

# 发送邮件:
try:
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host, 25)
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("发送成功")
except smtplib.SMTPException as e:
    print(f"发送失败,错误原因:{e}")

# 163邮箱报错的代码查询:
# http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html
# 其中[554 DT:SPM]错误对应的原因是:
# 邮件内容包含未被许可的信息,或被识别为垃圾邮件



密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表