python实现email发送邮件(发文本和带附件)

SMTP_SSL   需要按不同类型邮箱设置端口号  
发件人的地址为邮箱地址   密码为授权码

下面展示一些 内联代码片

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

class emailsend:
    def sendfile(self,content): #带附件的发送
        sender = '发件人邮箱地址'
        receiver = '收件人地址'
        smtpserver = 'smtp.163.com' #使用来网易邮箱
        username = '发件人邮箱地址'
        password = '邮件发送的授权码'
        mail_title = '主题:这是带附件的邮件'

        # 创建一个带附件的实例
        message = MIMEMultipart()
        message['From'] = "{}".format(sender)  # 发送者
        message['To'] = ",".join(receiver)  # 接收者
        message['Subject'] = Header(mail_title, 'utf-8')

        # 邮件正文内容
        message.attach(MIMEText(content, 'plain', 'utf-8'))

        # 构造附件1(附件为TXT格式的文本,excel)
        att1 = MIMEText(open('../test1.xlsx', 'rb').read(), 'base64', 'utf-8')  #文件路径是这个代码附近的文件
        att1["Content-Type"] = 'application/octet-stream'
        att1["Content-Disposition"] = 'attachment; filename="test1.xlsx"'
        message.attach(att1)

        # # 构造附件2(附件为JPG格式的图片)
        # att2 = MIMEText(open('IMG_8455.PNG', 'rb').read(), 'base64', 'utf-8')
        # att2["Content-Type"] = 'application/octet-stream'
        # att2["Content-Disposition"] = 'attachment; filename="wangzhe.jpg"'
        # message.attach(att2)

        # # 构造附件3(附件为HTML格式的网页)
        # att3 = MIMEText(open('report_test.html', 'rb').read(), 'base64', 'utf-8')
        # att3["Content-Type"] = 'application/octet-stream'
        # att3["Content-Disposition"] = 'attachment; filename="report_test.html"'
        # message.attach(att3)

        try:
            smtpObj = smtplib.SMTP_SSL(smtpserver, 465)
            smtpObj.login(username, password)
            smtpObj.sendmail(sender, receiver, message.as_string())
            print("mail has been send successfully")
            e = "邮件发送成功!!!"
            smtpObj.quit()
        except smtplib.SMTPException as error:
            e = str(error)
        except Exception as e:
            print('邮件发送失败   ' + str(e) + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        return

    def sendtext(mail_host,mail_user,mail_pass,receivers,title,content):
        mail_host = mail_host
        mail_user = mail_user
        mail_pass = mail_pass

        sender = mail_user
        receivers = ['接收人邮箱地址']# 接收人

        # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
        content = content#发送邮件内容
        title = title#设置主题
        #subject = 'Python SMTP 邮件测试'
        message = MIMEText(content,'plain','utf-8')#内容,格式,编码
        msg=MIMEMultipart()#带附件是实例
        message['From'] = "{}".format(sender) #发送者
        message['To'] = ",".join(receivers)#接收者
        message['Subject'] = title#主题


        try:
            smtpObj = smtplib.SMTP_SSL(mail_host,465)
            smtpObj.login(mail_user,mail_pass)
            smtpObj.sendmail(sender,receivers,message.as_string())
            print ("mail has been send successfully")
            print ('邮件发送成功' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
            smtpObj.quit()
        except smtplib.SMTPException as error:
            print(str(error))
        except Exception as e:
            print('邮件发送失败'+ str(e) + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        if '__name__' == '__main__':
            print()


es = emailsend()
es.sendfile('mail has been send successfully'+'\n'+ "这个是附件")
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现Python的录像邮件送功能,您可以按照以下步骤进行操作: 1. 导入所需的库:您需要导入`time`、`cv2`、`smtplib`、`MIMEImage`、`MIMEText`和`MIMEMultipart`库。 2. 调用摄像头并保存图像:使用`cv2.VideoCapture`函数调用您的摄像头。在循环中,使用`cap.read()`读取摄像头的每一帧图像,然后使用`cv2.imshow()`显示图像。通过按下空格键,使用`cv2.imwrite()`将当前帧保存为图像文件。 3. 构造邮件内容:使用`MIMEImage`和`MIMEText`类构造邮件的内容。将保存的图像作为附件添加到邮件中,并设置邮件的文本内容。 4. 发送邮件:使用`smtplib.SMTP()`函数连接到SMTP服务器,并使用`login()`函数登录到您的邮箱。然后,使用`sendmail()`函数将邮件送到指定的邮箱地址。最后,使用`quit()`函数断开与SMTP服务器的连接。 下面是一个示例代码,可以帮助您实现这个功能: ```python import time import cv2 from email.mime.image import MIMEImage from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib def send_email(msg): smtp = smtplib.SMTP() smtp.connect('smtp.163.com', port=25) # 请根据您的邮箱设置选择合适的SMTP服务器和端口号 smtp.login('[email protected]', 'password') # 请替换为您的件人邮箱和密码 smtp.sendmail('[email protected]', '[email protected]', msg.as_string()) # 请替换为您的件人邮箱和收件人邮箱 smtp.quit() def capture_and_send(): cap = cv2.VideoCapture(0) # 请根据您的摄像头索引进行调整 while True: ret, frame = cap.read() cv2.imshow('Camera', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break elif cv2.waitKey(1) & 0xFF == ord('s'): cv2.imwrite('image.jpg', frame) break cap.release() cv2.destroyAllWindows() msg = MIMEMultipart() msg.attach(MIMEText('Please see the attached image.')) with open('image.jpg', 'rb') as f: img = MIMEImage(f.read()) img.add_header('Content-Disposition', 'attachment', filename='image.jpg') msg.attach(img) send_email(msg) if __name__ == '__main__': capture_and_send() ``` 请注意,在上述代码中,您需要将以下内容替换为您自己的信息: - SMTP服务器和端口号 - 件人邮箱和密码 - 收件人邮箱 - 摄像头索引(如果有多个摄像头) 您可以根据需要对代码进行调整和改进,以适应您的具体要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值