E-mail¶
Filtre, pesquise, leia e escreva e-mails usando protocolos IMAP e SMTP.
Instalação¶
Importando o plugin¶
Depois de instalar este pacote, a próxima etapa é importar o pacote para o seu código e começar a usar o funções.
SMTP e permissões IMAP
Em alguns casos, para poder usar as funcionalidades de email através dos protocolos IMAP e SMTP, é necessário ativar a permissão para usar os dois protocolos nas configurações da conta. Além disso, também pode ser necessário ativar a opção para aplicativos menos seguros.
Autenticação de dois fatores
Recomendamos desativar a autenticação de dois fatores para contas de email para evitar qualquer tipo de bloqueio de bot. Se você estiver usando uma conta com autenticação de dois fatores e não for possível desativá-la, consulte a seção Autenticação de dois fatores.
Configurando conta de e-mail¶
Primeiro, vamos configurar nossa conta de email e fazer login com as credenciais.
# Instanciar o plug -in
email = BotEmailPlugin()
# Configure IMAP com o servidor Gmail
email.configure_imap("imap.gmail.com", 993)
# Configure SMTP com o servidor Gmail
email.configure_smtp("imap.gmail.com", 587)
# Faça login com uma conta de email válida
email.login("<USER_EMAIL>", "<USER_PASSWORD>")
Informações
Você pode usar diferentes servidores de email, as informações sobre alguns servidores podem ser vista nesta página.
Configuração alternativa¶
Você tem a opção de configurar os servidores que serão usados da maneira que deseja. No entanto, em alguns casos, você pode simplesmente usar as configurações padrão de um servidor conhecido e conectar sua conta rapidamente.
A configuração acima também pode ser assim:
Obtendo algumas mensagens de e-mail¶
Com a instância do plugin configurada, recuperaremos algumas mensagens de email.
Observação
Por favor, evite usar palavras que contenham acentos ou caracteres especiais ao usar os métodos para filtrar e pesquisar mensagens. Este é um problema dos servidores de email, causando uma exceção ao tentar pesquisar emails usando caracteres especiais no filtro.
# Pesquise todos os e -mails com o assunto: mensagem de teste
mensagens = email.search('SUBJECT "Mensagem de teste"')
# Para cada email encontrado: imprime a data, endereço do remetente e conteúdo de texto do email
for msg in mensagens:
print("\n---------------------------")
print("Data => " + msg.date_str)
print("De => " + msg.from_)
print("Msg => " + msg.text)
Informações
Neste exemplo, o atributo SUBJECT foi usado como filtro, você pode ter uma idéia dos atributos que podem ser usados neste link.
Veja mais detalhes sobre como criar filtros avançados nesta seção.
Outra maneira de buscar algumas mensagens de e-mail¶
No método search utilizado acima, é necessário passar uma string que contém o filtro que será usado. No entanto, em alguns casos, pode ser confuso e é difícil construir o filtro corretamente.
Portanto, através do método filter by, é possível selecionar o atributo que será usado no filtro e passar o valor desse atributo. Tornando muito mais fácil construir filtros ao recuperar mensagens.
Enviando uma nova mensagem do zero¶
Depois de recuperar alguns e-mails, enviaremos uma nova mensagem.
# Definindo os atributos que comporão a mensagem
para = ["<EMAIL_DESTINATARIO_1>", "<EMAIL_DESTINATARIO_2>"]
assunto = "Olá Mundo!"
corpo_email = "<h1>Olá!</h1> Esta é uma mensagem de teste!"
arquivos = ["meu_arquivo.txt"]
# Enviando a mensagem de e -mail
email.send_message(assunto, corpo_email, para, attachments=arquivos, use_html=True)
# Feche a conexão com os servidores IMAP e SMTP
email.disconnect()
Código completo¶
Vamos dar uma olhada no código completo:
# Importar o plug -in
from botcity.plugins.email import BotEmailPlugin
# Instanciar o plug -in
email = BotEmailPlugin()
# Configure IMAP com o servidor Gmail
email.configure_imap("imap.gmail.com", 993)
# Configure SMTP com o servidor Gmail
email.configure_smtp("imap.gmail.com", 587)
# Faça login com uma conta de email válida
email.login("<EMAIL_USUARIO>", "<SENHA_USUARIO>")
# Pesquise todos os e -mails com o assunto: mensagem de teste
mensagens = email.search('SUBJECT "Mensagem de teste"')
# Para cada email encontrado: imprime a data, endereço do remetente e conteúdo de texto do email
for msg in mensagens:
print("\n---------------------------")
print("Date => " + msg.date_str)
print("From => " + msg.from_)
print("Msg => " + msg.text)
# Definindo os atributos que comporão a mensagem
para = ["<EMAIL_DESTINATARIO_1>", "<EMAIL_DESTINATARIO_2>"]
assunto = "Olá Mundo!"
corpo_email = "<h1>Olá!</h1> Esta é uma mensagem de teste!"
arquivos = ["meu_arquivo.txt"]
# Enviando a mensagem de e -mail
email.send_message(assunto, corpo_email, para, attachments=arquivos, use_html=True)
# Feche a conexão com os servidores IMAP e SMTP
email.disconnect()