python学习(十五)电子邮件

  • 电子邮件软件被称为MUA:Mail User Agent——邮件用户代理。
  • Email从MUA发出去发到服务商的MTA:Mail Transfer Agent——邮件传输代理。
  • MTA会把Email投递到邮件的最终目的地MDA:Mail Delivery Agent——邮件投递代理。
  • Email到达MDA后,就静静地在新浪的某个服务器上,存放在某个文件或特殊的数据库里,这个长期保存邮件的地方为电子邮箱
  • 对方要取到邮件,必须通过MUA从MDA上把邮件取到自己的电脑上。
发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人
  • 编写程序来发送和接收邮件:编写MUA把邮件发到MTA;编写MUA从MDA上收邮件。
  • 发邮件时,MUAMTA使用的协议就是SMTPSimple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议。
  • 收邮件时,MUAMDA使用的协议有两种:POP:Post Office Protocol,目前版本是3,俗称POP3;IMAP:Internet Message Access Protocol,目前版本是4,优点是不但能取邮件,还可以直接操作MDA上存储的邮件,比如从收件箱移到垃圾箱,等等。
  • 大多数邮件服务商都需要手动打开SMTP发信和POP收信的功能,否则只允许在网页登录。

SMTP发送邮件

  • SMTP是发送邮件的协议,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
  • smtplibemail两个模块,email负责构造邮件,smtplib负责发送邮件。
# 构造一个最简单的纯文本邮件:
from email.mime.text import MIMEText
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
# 构造MIMEText对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,最终的MIME就是'text/plain',最后一定要用utf-8编码保证多语言兼容性。
通过SMTP发出去:
# 输入Email地址和口令:
from_addr = input('From: ')
password = input('Password: ')
# 输入收件人地址:
to_addr = input('To: ')
# 输入SMTP服务器地址:
smtp_server = input('SMTP server: ')

import smtplib
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

#用set_debuglevel(1)就可以打印出和SMTP服务器交互的所有信息。SMTP协议就是简单的文本命令和响应。login()方法用来登录SMTP服务器,sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list,邮件正文是一个str,as_string()把MIMEText对象变成str。
  • 邮件主题、如何显示发件人、收件人等信息并不是通过SMTP协议发给MTA,而是包含在发给MTA的文本中的。
  • 我们必须把
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值