最小 Python IMAP over SSL 示例
注意: 考虑使用 IMAP with TLS 而不是 IMAP over SSL。请参见最小 Python IMAP over TLS 示例。
此示例代码将使用端口 993(IMAP over SSL)登录服务器,列出邮箱并立即注销。
imap_ssl_example.py
#!/usr/bin/env python3
import imaplib
server = imaplib.IMAP4_SSL('imap.mydomain.com')
server.login('email@mydomain.com', 'password')
# 打印服务器上的邮箱列表
code, mailboxes = server.list()
for mailbox in mailboxes:
print(mailbox.decode("utf-8"))
# 选择邮箱
server.select("INBOX")
# 清理
server.close()记住替换:
imap.mydomain.com为你的 IMAP 服务器域名或 IP 地址email@mydomain.com为你要登录的电子邮件地址password为你要登录的密码
运行此脚本时,成功输出可能如下所示:
imap_example_output.txt
(\HasChildren) "." INBOX
(\HasNoChildren) "." INBOX.Spam
(\HasNoChildren) "." INBOX.Drafts
(\HasNoChildren) "." INBOX.Sent
(\HasNoChildren) "." INBOX.Trash如果你的凭据不起作用,你将看到类似这样的错误消息:
imap_example_traceback.txt
Traceback (most recent call last):
File "./imaptest.py", line 5, in <module>
server.login('email@domain.com', 'mypassword')
File "/usr/lib/python3.6/imaplib.py", line 598, in login
raise self.error(dat[-1])
imaplib.error: b'[AUTHENTICATIONFAILED] Authentication failed.'注意为了能够 server.close() 连接,需要先 server.select() 一个邮箱;这就是为什么我们不能省略 server.select("INBOX") 行,即使我们实际上没有对邮箱做任何事情。请参见此文章了解此行为的更简洁示例。
Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow