APP下载

Python中怎样发邮件

2023-06-06陈新龙

电脑报 2023年21期
关键词:电子邮件邮件邮箱

陈新龙

電子邮件是如何进行交互传输的?什么是电子邮件协议?

电子邮件协议中最常用的是SMTP和IMAP两种协议。SMTP一般用于发送邮件,是建立在FTP文件传输服务上的一种邮件服务,主要用于从源地址到目的地址传输邮件的规范,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。在起草电子邮件并发起发送命令或者中转邮件的时候,就会使用此协议。

IMAP(Internet邮件访问协议)一般用来收取邮件,是一个应用层的协议,是一种临时邮件访问协议,也被称为交互式邮件访问协议。IMAP不会用于发送邮件,主要用于管理邮件以及从服务器上检索电子邮件,获取邮件的信息。IMAP协议运行在TCP/IP协议之上,它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作(图1)。

我们采用编程的方式来更好理解邮件发送和接收的过程。

编程前的工作,在邮箱后台开启IMAP/SMTP和POP3/SMTP服务,找到用于连接到服务器的授权码。用授权码代替邮箱密码登录客户端,即使邮箱密码丢失,邮件也不会通过客户端泄露。

以网易邮箱为例,进入邮箱设置,进入POP3/SMTP/IMAP设置,开启IMAP/SMTP和POP3/SMTP服务,新增授权密码,记下授权码。

开始编程,导入stmplib和email模块。Python标准库的smtplib模块,用于实现按SMTP协议发送邮件。email模块用于按邮件格式构造内容。定义变量,如网易邮箱SMTP服务器地址:smtp.163.com,QQ邮箱SMTP服务器地址:smtp.qq.com(图2)。

指定发送端口号,使用SSL协议(安全套接字协议)情况下端口号465。还需我们自己的邮箱账号和授权码,确保我们可以通过该邮箱账号发送邮件,注意授权码不是密码,是在网站上申请的一串密钥。

发送邮件时会创建一个SMTP对象,SMTP协议是由源服务器到目的地服务器传送邮件的一组规则。我们需要通过SMTP指定一个服务器,这样才能把邮件送到另一个服务器。然后通过SMTP_SSL方法连接上指定的服务器,login登录邮箱(username和password分别代表邮箱账号和申请的授权码),最后通过sendmail方法指定发件人、收件人、发送的邮件内容。as_string()是将发送的信息msg转化为字符串类型。若邮件发送成功后对应的收件邮箱中会出现邮件的信息即可查看。

这只是最基础的文本信息邮件,接下来你可以查阅相关资料,看看怎样发送携带附件的邮件。

猜你喜欢

电子邮件邮件邮箱
有关旅行计划的电子邮件
基于James的院内邮件管理系统的实现
来自朋友的邮件
没问题邮箱
CMailServer
一封邮件引发的梅赛德斯反弹
关于停止使用dianxunjishu@china.com邮箱的通知
邮箱变更
民事诉讼电子邮件送达制度的司法适用
《胃肠病学》邮箱更改启事