专栏首页python3python发送邮件和附件

python发送邮件和附件

发送邮件的时候,需要发送人,收件人,和一台邮件服务器,这里使用python发送一个邮件,主要需要引入smtplib和email库。 下面是源码,粘贴即可用:

#!/usr/bin/env python3
# coding: utf-8
import smtplib
import time
import sys
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# 发送邮件
def SendMail(mail_list, subject, content):
    from_mail = '这里填入发件人邮箱'
    temp_msg = '武松申请了车费报销'
    msg = MIMEText('</pre><p>' + temp_msg + '</p><a href="/agree">同意</a>,<a href="/disagree">不同意</a><pre>', 'html','utf-8')
    msg['Subject'] = subject
    msg['From'] = from_mail
    msg['To'] = mail_list
    msg['date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z')
    smtp_server = '这里填入邮件服务器的地址'
    s = smtplib.SMTP(smtp_server)
    s.login("填入登录邮件服务器的邮箱", "填入邮箱密码")
    s.sendmail(from_mail, mail_list.split(","), msg.as_string())
    s.quit()

# 发送邮件带附件
def SendMailWithAttachment(mail_list, subject, content, attachment):
    from_mail = '这里填入发件人邮箱'
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = from_mail
    msg['To'] = mail_list
    msg['date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z')
    msg.attach(MIMEText(content, 'html', 'utf-8'))
    att = MIMEText(open(attachment, 'rb').read(), 'base64', 'utf8')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attachment; filename="%s"' % attachment
    msg.attach(att)
    smtp_server = '这里填入邮件服务器的地址'
    s = smtplib.SMTP(smtp_server)
    s.login("填入登录邮件服务器的邮箱", "填入邮箱密码")
    s.sendmail(from_mail, mail_list.split(","), msg.as_string())
    s.quit()

if __name__ == '__main__':
    if len(sys.argv) < 4:
        print('Usage:', sys.argv[0], ' mail_list subject content [attachment]')
        sys.exit(1)
    content = ""
    if len(sys.argv) == 4:
        SendMail(sys.argv[1], sys.argv[2], content)
    else:
        SendMailWithAttachment(sys.argv[1], sys.argv[2], content, sys.argv[4])

你需要修改的地方是:

from_mail:发件人信息 temp_msg:发送的内容 smtp_server:邮件服务器地址 s.login:邮件服务器登录名和密码

命令行发送: python3 sendmail.py '772654204@qq.com' 'python send mail' 'leran is fun'

显示效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 15.2 POP3 收取邮

    收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的就是POP3协议。

    py3study
  • python 发送中文邮件

            me = mail_user+"<"+mail_user+"@"+mail_postfix+">"

    py3study
  • python 使用stmp发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式...

    py3study
  • 基础知识 | 每日一练(136)

    士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ...

    闫小林
  • 研究一下未知参数的方法

    最近要写一个小方法让组装字符串为一个数组进行下一步的传递,直接写进数组会因为可能数组为空决定写一个多参数的方法 判断就在里面进行判断

    君赏
  • Neurology:皮质下小梗死后相连深皮层的选择性萎缩

    目的:探讨慢性皮质下小梗死(chronicsmall subcortical infarct)患者中,相连皮层的皮质层是否受到不同的影响,以及这些差异是否与临床...

    用户1279583
  • iOS小经验:UITableView&UICollectionView设置单元格的默认选中状态

    一个表格视图(或者宫格视图)中,当一个单元格被选中时设置彩色样式,选中其它单元格时设置灰色样式。

    陈满iOS
  • 呦,应用又闪退啦?

    在iOS开发中,bug从来都叫人尴尬又头秃,bug中又以线上崩溃最为致命。本地尚且能相视一笑而后猥琐排查,如果线上应用崩溃,就需要考验职业素养了。

    yuanyi928
  • iOS - 老生常谈内存管理(三):ARC 面世

    ARC全称Automatic Reference Counting,自动引用计数内存管理,是苹果在 iOS 5、OS X Lion 引入的新的内存管理技术。AR...

    师大小海腾
  • MQ教程 | RabbitMQ work queues 工作队列 [Java版](三)

    前提:使用 simple 队列的时候 我们应用程序在是使用消息系统的时候,一般生产者 P 生产消息是毫不费力的(发送消息即可),而消费者接收完消息 后的需要处理...

    Tinywan

扫码关注云+社区

领取腾讯云代金券