Python 邮件发送

Python 邮件发送

1. 注册126邮箱账号,开通POP3/SMTP服务; 期间需要发送短信, 设置授权码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mozRNEe0-1572769394724)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1572764526389.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WTnXc2rf-1572769394726)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1572764612880.png)]

2. 配置文件
# 发件人邮箱账号
sender = 'xxx@126.com'

# 发件人昵称
username = 'xxx'

# 收件人邮箱账号
receive = 'xxx@163.com'

# 收件人昵称
receiveName = 'xxx'

# 授权码(开通smtp服务时自己设置的)
passwd = 'xxx'

# 126 邮箱服务器地址
mailserver = 'smtp.126.com'

# 默认端口25
port = '25'

# 描述信息
sub = 'Python邮件发送测试'
3. 废话不说, 直接上源码; 有兴趣的可以看文档

文档地址

# @Time : 2019/11/3 15:14
# @Author : GKL
# FileName : spider.py
# Software : PyCharm

import smtplib
# 文字邮件
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.application import MIMEApplication
from email.mime.image import MIMEImage
# 发送带附件的邮件
from email.mime.multipart import MIMEMultipart

from account import *


class Spider(object):

    sender = sender
    receive = receive
    passwd = passwd
    mailserver = mailserver
    port = port
    sub = sub
    username = username
    receiveName = receiveName

    def __init__(self):
        # 发件人昵称, 账号
        self.msg = MIMEMultipart('related')
        self.msg['From'] = formataddr([self.username, self.sender])
        # 收件人昵称, 账号
        self.msg['To'] = formataddr([receiveName, self.receive])
        self.msg['Subject'] = self.sub

    def send_txt(self):
        """
        普通文本信息
        :return:
        """
        # 文本信息
        txt = MIMEText('this is a test mail', 'plain', 'utf-8')
        self.msg.attach(txt)

    def send_attach(self):
        """
        发送附件
        :return:
        """
        # 附件信息 , 添加附件会显示在垃圾邮件里
        attach = MIMEApplication(open("test.html", encoding='utf8').read())
        attach.add_header('Content-Disposition', 'attachment', filename='test.html')
        self.msg.attach(attach)

    def send_img(self):
        """
        发送图片
        :return:
        """
        f = open('1.jpg', 'rb')
        pic = MIMEImage(f.read())
        f.close()
        pic.add_header('Content-ID', '<image>')
        self.msg.attach(pic)

    def send(self):
        """
        发送逻辑
        :return:
        """
        # 126邮箱SMTP服务器地址,端口
        server = smtplib.SMTP(self.mailserver, self.port)
        # 发件人邮箱账号、授权码
        server.login(self.sender, self.passwd)
        # 发件人邮箱账号、收件人邮箱账号、发送邮件
        server.sendmail(self.sender, self.receive, self.msg.as_string())
        server.quit()

    def run(self):
        try:
            self.send_attach()
            self.send()
            print('发送成功')
        except Exception as e:
            print('发送失败:{}'.format(e))


if __name__ == '__main__':
    s = Spider()
    s.run()

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值