如何在Python中构建SMTP客户端?

0 投票
3 回答
836 浏览
提问于 2025-04-15 11:44

在Python中创建一个SMTP客户端。这个客户端可以发送邮件,并且能够显示邮件是否通过任何邮件服务(比如Gmail)被接收到了!!

3 个回答

0

这要看你说的“收到”是什么意思。我们可以确认消息是否“送达”到了服务器,但并不能百分之百保证它真的进了邮箱。使用smtplib的时候,在某些情况下(比如对方报告找不到用户),它会抛出一个异常。但有时候,对方会接受邮件,然后可能会把邮件过滤掉,或者稍后再发送一个退信通知。

1

如果你想让Python的标准库来帮你完成这项工作(推荐这样做!),可以使用smtplib。要检查邮件是否发送成功,只需打开你的收件箱看看就行了;)

如果你想自己实现这个协议(这是作业吗?),那么你需要了解一下SMTP协议,然后可以使用例如socket模块。

2

使用 email 创建邮件消息(可能包含多个附件)。

email 这个库是用来管理邮件消息的,包括一些特殊格式的邮件和其他基于 RFC 2822 的邮件文档。

使用 smtplib 发送邮件。

smtplib 模块定义了一个 SMTP 客户端会话对象,可以用来向任何有 SMTP 或 ESMTP 服务的互联网机器发送邮件。

如果你想查看远程邮箱里的邮件(比如,看看你发的邮件是否到了),你需要一个可以通过已知协议访问的邮件服务。一个常见的例子是 imaplib 模块,它实现了 IMAP4 协议IMAPgmail 支持的。

这个 (imaplib) 模块定义了三个类,IMAP4、IMAP4_SSL 和 IMAP4_stream,它们封装了与 IMAP4 服务器的连接,并实现了 RFC 2060 中定义的大部分 IMAP4rev1 客户端协议。它与 IMAP4 (RFC 1730) 服务器向后兼容,但请注意,IMAP4 中不支持 STATUS 命令。

撰写回答