Python学习笔记(二十)收发电子邮件

参考资料:

https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868325601402299d1e941914a21990ac7861ef4bc2d000

https://blog.csdn.net/Mark_LQ/article/details/51204081?locationNum=3&fps=1

1、电子邮件在网络上传输过程:发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人

(1)MUA:Mail User Agent——邮件用户代理。客户端用于发送或接收邮件的软件,如Outlook、手机端的各类邮件管理APP等。

(2)MTA:Mail Transfer Agent——邮件传输代理。Email服务提供商,如新浪、搜狐、网易等。

(3)MDA:Mail Delivery Agent——邮件投递代理。邮件最终目标邮箱服务器。

2、收发电子邮件的程序是MUA的功能,使用SMTP(Simple Mail Transfer Protocol)协议发送邮件到MTA,使用POP(Post Office Protocol)协议或IMAP(Internet Message Access Protocol)协议从MDA收取邮件信息。IMAP协议不但能接收收件箱邮件,还可以操作邮箱其他目录,但POP协议只能从收件箱接收邮件。下面是我的学习代码:

发送邮件:

from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import parseaddr, formataddr
from email.mime.base import MIMEBase
import smtplib
import os

#邮件正文类型格式常量-HTML
MAILTYPE_HTML = 'html'
#邮件正文类型格式常量-文本
MAILTYPE_TEXT = 'plain'

#对复合邮件地址(发件人名称<邮箱地址>)进行编码
def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr(( \
        Header(name, 'utf-8').encode(), \
        addr.encode('utf-8') if isinstance(addr, unicode) else addr))

#用于发送邮件的类
class EmailSender(object):
    def __init__(self):
        #邮件标题
        self.mTitle = None
        #发件人地址
        self.mFrom = None
        #收件人地址
        self.mTo = None
        #发件人名称
        self.mFromName = None
        #收件人名称
        self.mToName = None
        #正文
        self.mText = None
        #正文类型,默认为文本
        self.mType = MAILTYPE_TEXT
        #编码格式
        self.mCode = 'utf-8'
        #附件列表
        self.attachs =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值