Python3笔记-电子邮件的收发

本文档详细介绍了Python3中如何进行电子邮件的收发操作,包括设置payload和字符集等关键步骤。
摘要由CSDN通过智能技术生成

文章笔记参考:Python教程

一、电子邮件的发件过程:

发件人email->MUA(mail user agent:邮件用户代理)->MTA(mail transfer agent:邮件传输代理)->MDA(mail delivery agent:邮件投递代理,也就是服务器)<-MUA<-收件人
二、使用SMTP协议发送邮件
Python支持SMTP,同时,在email包内包含了关于邮件收发的一些API,可以使用Python进行纯文本、HTML、以及带有附件的邮件传输。下面介绍有关的 两个主要模块:email和smtplib,不过还是先讲一些套路吧:

使用python正常发送一个邮件的套路就是:
1)导入包:from email.mime.text import MIMEText
2)定义发送端地址,密码,接收端地址
3)定义一个SMTP服务器地址
4)导入smtplib
5)在25(默认)端口打开服务器
6)在改服务端登录,并发送邮件
7)退出SMTP

步骤详解:
1)定义发件人地址、密码、收件人地址:
from_addr = input('From: ')
password = input('Password: ')
to_addr = input('To: ')

2)定义一个SMTP服务器地址,同时在25端口打开SMTP服务器,进行发件人登录动作,这里以新浪的SMTP服务器地址为例
smtp_server = input('SMTP server')

import smtplib
server = smtplib.SMTP(smtp_server, 25) # the default protocol is 25
server.set_debuglevel(1) # 只是用来打印调试信息的,如果设置为0,就不打印
server.login(from_addr, password) # login SMTP

3)定义邮件内容,并且发送出去
msg = MIMEText('hello world!', 'plain', 'utf-8')
# 收件人可以有多个,所以这是一个list,msg是一个Message结构,所以转成string
server.sendmail(from_addr, [to_addr], msg.as_string()) 
# 一定要退出服务器
server.quit()

以上这封邮件发送出去的话,不会在收件人处查看到详细的发件人地址以及其他头信息,如果要添加的话,可以像下面这样
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值