使用python 发送邮件

      日常项目中,经常会遇到在某些事件发生时,需要给特定的人员(运维同事)发送报警邮件,具体实现方法比较多, 我们这里讲一下,如何使用python 的smtplib库来发送邮件。

     这里以163邮箱为例,具体代码如下:

def send_email_with_attachment(sender, password, receiver, subject, content, attachment_path):
    # 创建邮件对象
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = receiver

    # 添加正文内容
    msg.attach(MIMEText(content, 'plain', 'utf-8'))

    # 添加附件
    with open(attachment_path, 'rb') as file:
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(file.read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment', filename=attachment_path.split('/')[-1])
        msg.attach(part)

    # 连接服务器并发送邮件
    try:
        server = smtplib.SMTP('smtp.163.com', 25)
        server.starttls()
        server.login(sender, password)
        server.sendmail(sender, receiver, msg.as_string())
        server.quit()
        print("email send successfully")
    except Exception as e:
        print("email send to be fail, exception is ", e)

if __name__=='__main__':
    sender=''xxx@163.com
    password='yyyyyy' 
    receiver='xxx@126.com' 
    subject='study'
    content='day day up'
    attachment_path='aa/xxx.xmind'
    common.send_email_with_attachment(sender,password, receiver, subject, content, attachment_path)

      运行程序的时候,会报(550, b'User has no permission')异常, 提示该程序没有权限发送邮件,主要原因是,使用第三方程序来发送163邮件时,需要163邮箱服务器开启授权。

    具体开启授权的方法如下:

    需要先登录网易邮箱(访问邮箱登录页面),在“设置”-“POP3/SMTP/IMAP” 中开启如下服务:

    开启服务:IMAP/SMTP服务 已开启   (点击开启,会提示用邮箱绑定的手机发送验证码来开启这个服务。,发送成功后,该选项就会显示开启状态,并弹出框,显示一个授权登录的密码xxxxxxxx, 然后第三方程序发邮件时,使用的该邮箱的密码就填这个授权登录的密码(不是邮箱的本身的登录密码哦))

     修改发邮件程序,将password 内容设置为授权登录密码,然后再次运行程序,既可以正常发送邮件了。

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值