python学习笔记(三十三) -- 邮件发送

Table of Contents

 

前言

SMPT发送邮件

简单案例

设置主题、收件人、发件人名称

 发送HTML邮件

发送附件 以及图片

 同时支持HTML和Plain格式

加密SMTP


前言

邮件发送到接收流程:
    发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人
    MUA:Mail User Agent——邮件用户代理  如outlook
    MTA:Mail Transfer Agent——邮件传输代理  outlook等软件会发给MTA
    MDA:Mail Delivery Agent——邮件投递代理  邮件内容保存在MDA
    当收件上登陆邮箱时会从 MDA 获取邮件内容
    
发邮件时,MUA和MTA使用的协议就是SMTP:
    Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。
    
收邮件时,MUA和MDA使用的协议有两种:
    POP:Post Office Protocol,目前版本是3,俗称POP3;
    IMAP:Internet Message Access Protocol,目前版本是4。

SMPT发送邮件

简单案例

使用如下

from email.mime.text import MIMEText   # 负责构建邮件


# 参数一:邮件正文
# 参数二:邮件内容类型,plain代表纯文本
msg = MIMEText('Hello,send by Python..', 'plain', 'utf-8')
# 输入Email地址和口令
from_addr = input('From:')
password = input('Password:')
# 输入收件人地址:
to_addr = input('To:')
# 输入SMIP服务器地址:
smtp_server = input('SMTP server:')  # 形如 smtp.qq.com 这是qq邮箱的smtp服务器地址


import smtplib  # 负责发送邮件
#  连接SMTP服务器
server = smtplib.SMTP(smtp_server, 25)  # SMTP 协议默认端口是25
# server = smtplib.SMTP_SSL(smtp_server, 465)  使用SSL协议的话 端口号就是465,SSL能够对传输内容以及用户名密码进行加密

#  使其可以打印出和SMTP服务器交互的所有信息,默认参数为false
server.set_debuglevel(1)
#  输入用户名密码登陆SMTP
server.login(from_addr, password)
#  发送邮件
#  参数一 发件人
# 参数二 收件人 可以有多个,是个list
#  参数三 邮件内容
server.sendmail(from_addr, [to_addr], msg.as_string())  # as_string将MIMEText转换成str
server.quit()

我是用qq邮箱向163邮箱发送的邮件,其中qq邮箱的密码不是我们登陆的密码,而是邮箱设置中的授权码。

收到的邮件如下:

注意如果使用了SSL,会出现在垃圾邮件中...并且无主题

 

 没使用SSL 就可以在收件箱中看到

通过上面的图可以看出,邮件的 主题 均为 无主题,而发件人是我的qq号(我给抹了)。如果想更改主题和收件人以及发件人的内容,我们需要更改MIMEText对象的一些内容,如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值