Невозможно подключиться к Gmail/Outlook, используя IMAP в Python
Я попытался подключиться к серверу Gmail, используя IMAP в Spyder(Python 3.6), используя пакет Chilkat. Я включил IMAP для всей почты в меню "Настройки"> "Переадресация" и "POP/IMAP", а затем активировал вкладку менее безопасных приложений здесь https://myaccount.google.com/lesssecureapps?pli=1 после входа. Но в этот код
import sys
import chilkat
imap = chilkat.CkImap()
# Anything unlocks the component and begins a fully-functional 30-day trial.
success = imap.UnlockComponent("Anything for 30-day trial")
if (success != True):
print(imap.lastErrorText())
sys.exit()
# Connect to an IMAP server.
# Use TLS
imap.put_Ssl(True)
imap.put_Port(993)
success = imap.Connect("imap.gmail.com")
success
переменная, которая является boolean
остается ложным. Пожалуйста, помогите мне. Моя цель - извлечь все вложения с сервера Outlook и выгрузить их в файл. Но я даже не могу подключиться к серверу Gmail. Я пытался использовать "imap.mail.Outlook.com", но это также не удалось. Я не знаю, как включить IMAP в Outlook. Но даже если он включен в Gmail, почему он не работает?
1 ответ
Первый шаг - проверить содержимое свойства imap.LastErrorText, чтобы увидеть, что произошло. Например:
# Connect to an IMAP server.
# Use TLS
imap.put_Ssl(True)
imap.put_Port(993)
success = imap.Connect("imap.someMailServer.com")
if (success != True):
print(imap.lastErrorText())
sys.exit()
Я предполагаю, что брандмауэр (программный или аппаратный) блокирует исходящее соединение.
Альтернативное решение заключается в использовании API-интерфейса REST GMail, как показано в следующих примерах: https://www.example-code.com/python/gmail.asp HTTP-порты (443) вряд ли будут заблокированы брандмауэром. Вы должны загрузить в объект электронной почты Chilkat, а затем сохранить вложения точно так же, как если бы вы загружали через IMAP.