分享

Python 电子邮件

 印度阿三17 2019-10-05

  从一台计算机编写邮件到对方收到邮件。假设我们自己的电子邮件地址是me@163.com,对方的电子邮件地址是friend@sina.com

  我们在本地的软件上写好邮件,点击发送,邮件就发送出去了,这些电子邮件被称为MUA(mail user agent)邮件用户代理

  邮件从本地被发送出去后,并不会被直接送到用户的电脑上,而是被发送到MTA:Mail Transfer Agent 浏览器传输代理,就是那些Email服务提供商,比如网易、新浪等等,由于我们自己的电子邮件是163.com,所以邮件回被最先送到网易提供的MTA,再由网易的MTA发送到对方的MTA,即新浪的MTA,这中间可能还会经过其他服务商的MTA

  当邮件被送到对方邮箱的服务提供商的MTA,因此新浪的MTA会把邮件投递到邮件的最终目的地:MDA :Mail Delivery Agent 邮件投递代理。Email到达MDA后,就静静地躺在新浪的某个服务器上,存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为电子邮箱。

  Email不会直接到达对方的电脑,因为对方电脑不一定开机,开机也不一定联网。对方要取到邮件,必须通过MUA从MDA上把邮件取到自己的电脑上。

  所以,一封电子邮件的旅程就是:

 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人

  所以要编写程序来发送和接受邮件,最基本的两件事

  编写MUA将邮件送到MTA,编写MUA从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,优点是不但能取邮件,还可以直接操作MDA上存储的邮件,比如从收件箱移到垃圾箱,等等。

  

  邮件客户端软件在发邮件时,会让你先配置SMTP服务器,也就是你要发到哪个MTA上。假设你正在使用163的邮箱,你就不能直接发到新浪的MTA上,因为它只服务新浪的用户,所以,你得填163提供的SMTP服务器地址:smtp.163.com,为了证明你是163的用户,SMTP服务器还要求你填写邮箱地址和邮箱口令,这样,MUA才能正常地把Email通过SMTP协议发送到MTA。

  类似的,从MDA收邮件时,MDA服务器也要求验证你的邮箱口令,确保不会有人冒充你收取你的邮件,所以,Outlook之类的邮件客户端会要求你填写POP3或IMAP服务器地址、邮箱地址和口令,这样,MUA才能顺利地通过POP或IMAP协议从MDA取到邮件。

  最后特别注意,目前大多数邮件服务商都需要手动打开SMTP发信和POP收信的功能,否则只允许在网页登录。否则我们就不能在自己的程序上登陆

来源:https://www./content-1-487901.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多