Почтовый клиент с двумя почтовыми хостами на Python
Я хотел написать свой почтовый клиент на Python, используя два почтовых хоста Gmail и Mail.Ru. Вот мой код:
import imaplib
import smtplib
import pprint
#import getpass
#Mail host's
imap_gmail = 'imap.gmail.com'
imap_mail = 'imap.mail.ru'
smtp_gmail = 'smtp.gmail.com'
smtp_mail = 'smtp.mail.ru'
login = True
#Autorization to mail
while login:
user = input('Enter your email: ')
pass_mail = input('Enter your password: ')
try:
#IMAP Host
imap = imaplib.IMAP4_SSL(imap_gmail or imap_mail)
# login to server
imap.login(user, pass_mail)
except:
print('Error')
continue
#login = False
break
#Select the act
act = input('What do you do? \n1. Writing the message. \n2. View all messages.')
#Send the message
if act == '1':
fromaddr = user
to_email = input('Enter the email: ')
message = input('Enter the message: ')
#SMTP Message
try:
#SMTP Host
smtp = smtplib.SMTP(smtp_gmail or smtp_mail)
smtp.starttls()
smtp.login(user, pass_mail)
#Send the message
smtp.sendmail(fromaddr, to_email, message)
print('Email sent successfully!!!')
except smtplib.SMTPException:
print('Error')
#View all inbox messages
elif act == '2':
imap = imaplib.IMAP4_SSL(imap_gmail or imap_mail)
imap.login(user, pass_mail)
imap.select('Inbox')
tmp, data = imap.search(None, 'ALL')
for num in data[0].split():
tmp, data = imap.fetch(num, '(RFC822)')
print('Message: {0}\n'.format(num))
pprint.pprint(data[0][1])
break
imap.close()
У меня работает хост Gmail, а второй Mail.Ru не работает, как сделать почтовый клиент с двумя хостами, чтобы второй хост работал?
Ответы (1 шт):
Автор решения: Reeddic Vasechkin
→ Ссылка
Возможно нужно включить в mail аккаунте доступ сторонних приложений.