Por exemplo, você deseja enviar um lembrete para seus clientes para as contas restantes e você tem todos os dados relacionados ao cliente, como números de telefone, endereço, idade etc. em uma folha do Excel ou em um banco de dados, em vez de fazê -lo manualmente, você pode escrever um programa simples em python para fazer isso automaticamente para você. Neste tutorial, aprenderemos como o protocolo de e -mail funciona e como você pode automatizar o processo para salvar seu tempo precioso.
O Simple Mail Transfer Protocol (SMTP) é computadorizado equivalente ao seu serviço postal. É um protocolo que funciona na camada de aplicação de uma rede TCP/IP. É um protocolo padrão para enviar e receber e -mails pela Internet. O processo de transferência de correio consiste em servidores de email e clientes enviando e recebendo e -mails um para o outro.
Por exemplo, você tem uma conta do Gmail e deseja enviar um e -mail para seu amigo em sua conta do Yahoo. Você escreve um e -mail e pressiona o envio, mas o processo de back -end é um pouco complicado e, para entender esse processo, você terá que entender o SMTP primeiro. Seu cliente de e -mail SMTP envia primeiro OLÁ (ou Ehlo) para o servidor Gmail, você pode dizer que este comando ou cabeçalho é equivalente a Hospedar Cabeçalho no protocolo HTTP e é usado para identificar o servidor usando o nome do domínio. Depois de Helo ou Ehlo, o cliente se autentica ao servidor com o nome de usuário e a senha dado usando Auth comando. Em seguida, ele especifica o endereço de e -mail do remetente e do destinatário e depois o corpo da mensagem e envia email para o servidor Gmail. O servidor do Gmail confirmará primeiro que se o endereço de e -mail do destinatário no Yahoo existe ou não, então ele enviará o email para o servidor Yahoo, onde o destinatário pode recuperar seus e -mails de.
Smtplib
Smtplib é uma biblioteca Python que pode ser usada como um cliente SMTP, como o seu Gmail, Yahoo, Thunderbird ou qualquer outro cliente de email e pode ser usado para enviar e -mails. Podemos executar todas as tarefas usando o cliente smtplib que podemos fazer com aqueles que têm interface gráfica do usuário.
Ele vem por padrão em python, caso você não o possua, então você pode instalar usando o seguinte comando.
ubuntu@ubuntu: ~ $ pip install smtplib
Ou em python3
ubuntu@ubuntu: ~ $ pip install smtplib
Escrevendo seu primeiro e -mail com Python
Neste tutorial, usarei uma conta do Gmail como remetente, também usarei o console python, para que eu seja mais fácil para mim explicar cada linha de código passo a passo. Para começar, precisamos permitir que nosso acesso ao Gmail a aplicativos menos seguros.
Portanto, faça o login na sua conta do Gmail e depois vá para as configurações da conta.
Agora verifique se o acesso para aplicativos menos seguros está ligado.
Agora abra seu console python e comece a escrever seu primeiro e -mail usando Python
ubuntu@ubuntu: ~ $ python
Python 2.7.16 (padrão, 7 de outubro de 2019, 17:36:04)
[GCC 8.3.0] no Linux2
Digite “ajuda”, “direitos autorais”, “créditos” ou “licença” para obter mais informações.
// importe a biblioteca SMTP
>>> importar smtplib
// conecta -se ao servidor Gmail com o nome do domínio e o número da porta (essa configuração difere para
Cada provedor de email, dê uma olhada na mesa abaixo)
>>> MailObj = smtplib.Smtp ('smtp.Gmail.com ', 587)
// Diga olá ao servidor
>>> Mailobj.ehlo ()
(250, 'SMTP.Gmail.com seu serviço, [103.255.4.246] \ NSize35882577 \ n8bitmime \ nstarttls \
NenhancedStatuscodes \ npipelining \ nchunking \ nsmtputf8 ')
// Porta 587 significa que estamos usando a conexão TLS criptografada, então comece a criptografar TLS
Comunicação usando startTls (), para que nossas credenciais e mensagens não fiquem cheiradas
>>> Mailobj.startTls ()
(220, '2.0.0 pronto para começar tls ')
// Faça login na sua conta do Gmail usando email e senha
>>> Mailobj.login ('[email protected] ',' s3cr3t_p4ssw0rd ')
(235, '2.7.0 aceito ')
// Especifique o endereço de e -mail do remetente e do destinatário e conteúdo de e -mail
>>> Mailobj.sendmail ('[email protected] ',' [email protected] ',' Assunto:
Olá Mundo! \ n Olá mundo! este é o meu primeiro e -mail de hello world em python ')
// Fechar a conexão com o servidor Gmail
>>> Mailobj.desistir()
(221, '2.0.0 conexão de fechamento B6SM4519863LFI.72 - GSMTP ')
No programa de amostra acima, substitua o conteúdo fornecido por seu próprio. Se você não é um usuário do Gmail, pode usar o servidor de email do seu provedor. Aqui está a lista de nomes de domínio e portos de alguns provedores de correio comum.
Nome | Nome do domínio do servidor | Porta |
Gmail | smtp.Gmail.com | 587 |
Outlook / Hotmail | SMTP-MAIL.panorama.com | 587 |
E-mail do Yahoo | smtp.correspondência.Yahoo.com | 587 |
Verizon | smtp.Verizon.líquido | 465 |
Comcast | smtp.Comcast.líquido | 587 |
Algumas palavras sobre IMAP
Então, acabamos de estudar que o SMTP é usado para enviar e -mails, mas o que é IMAP (Internet Access Messaging Protocol) para? O SMTP não pode ser usado para pesquisar e obter e -mails do servidor, o protocolo IMAP ou POP3 é usado para esse fim.
IMAPCLIENT, IMAPLIB e PYZMAIL
Existem duas principais bibliotecas no Python que podem ser usadas como um cliente IMAP para encontrar, recuperar e excluir e -mails do servidor de email. Python tem padrão IMAPLIB biblioteca, mas outra biblioteca externa IMAPCLIENT é mais eficaz e fácil de usar. Neste tutorial, usaremos IMAPCLIENT Para recuperar e -mails do servidor de email.
O problema com IMAPCLIENT é que ele recupera e -mails do servidor de email em formato bruto. Então, vamos precisar Pyzmail Biblioteca como um analisador para saída amigável de usuário. Para instalar as duas bibliotecas, digite
ubuntu@ubuntu: ~ $ sudo pip install iMapclient
ubuntu@ubuntu: ~ $ sudo pip install pyzmail
Obtendo seus e -mails do servidor de correio
Agora, aprenderemos como pesquisar e baixar e -mail do servidor de email usando o IMAPCLIENT. Usaremos o IMAPCLIENT para pesquisar e baixar e -mails do servidor, depois usaremos o Pyzmail para analisar esse conteúdo bruto. Vamos
// Importar biblioteca imapclient
>>> Importar imapclient
// Conecte -se ao servidor IMAP do Gmail
>>> obj = imapclient.IMAPCLIENT ('IMAP.Gmail.com ', ssl = true)
// Faça login na sua conta de e -mail usando suas credenciais
>>> obj.login ('[email protected] ',' s3cr4tp4ss ')
'[email protected] autenticado (sucesso) '
// Selecione a pasta de mensagens para ler i.e caixa de entrada, rascunhos, e -mails enviados
>>> obj.select_folder ('Caixa de entrada', readonly = true)
'Existe': 830, 'Permanentflags': (), 'HighestModseq': 112999, 'uidNext': 931,
'Flags': ('\\ respondeu', '\\ sinalizou', '\\ draft', '\\ deletado', '\\ viu',
'$ Notphishing', '$ phishing'), 'uidvalididade': 1, 'somente leitura': ["], 'recente': 0
// Pesquise suas mensagens em sua caixa de entrada ou aplique um filtro, abaixo do filtro será exibido
Vocês os e-mails recebidos após 25 de outubro-2019
>>> Mail_ids = OBJ.pesquisa (['desde', '25 -Oct-2019 '])
>>> Mail_ids
[919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930]
// A lista “Mail_Ids” contém uma lista de IDs de e-mail recebidos desde 25 de outubro-2019,
Você pode baixar um e -mail usando a função de busca imapclient.
>>> raw_mail = obj.Fetch ([919], ['Body []', 'Flags']))
// agora, o conteúdo na variável raw_mail está em formato bruto, não pode ser exibido no
tela diretamente, então precisamos de um analisador para analisar esse conteúdo para uma saída amigável de usuário
>>> Importar Pyzmail
>>> mensagem = pyzmail.PyzMessage.fábrica (raw_mail [919] ['corpo []'])
// Agora o email está analisado e armazenado na variável de mensagem, para obter o assunto de
o email, use função get_subject
>>> mensagem.get_subject ()
U'Rida suas habilidades neste Halloween com 25% de desconto '
// Da mesma forma, você pode ver os detalhes do remetente
>>> mensagem.get_addresses ('de')
[(u'usama azad ',' [email protected] ')]
>>> mensagem.get_addresses ('to')
[(U'[email protected] ',' [email protected] ')]
// Para obter o corpo do email, digite
>>> mensagem.text_part.get_payload ().decodificar (mensagem.text_part.charset)
você ”oi! Desfrute de 25% em nossos cursos premium ”
Se você tiver uma conta em outro provedor de serviços de e -mail que não seja o Gmail, poderá fazer login no servidor IMAP deles. Aqui está a lista de nomes de domínio IMAP de alguns provedores de correio famosos.
Fornecedor | Nome de domínio para servidor IMAP |
Yahoo | IMAP.correspondência.Yahoo.com |
Hotmail/Outlook | IMAP-MAIL.panorama.com |
Verizon | entrada.Verizon.líquido |
Comcast | IMAP.Comcast.líquido |
AT&T | IMAP.correspondência.att.líquido |
Excluindo seu e -mail do servidor IMAP
Semelhante à pesquisa e recuperação de e -mails do servidor, você também pode excluir e -mails do seu servidor de e -mail usando o UID deles. Basta seguir as etapas dadas
// Para excluir um email, você deve virar apenas para 'falso' para obter acesso ao seu
e -mails
>>> obj.select_folder ('Caixa de entrada', readonly = false)
>>> Mail_ids = OBJ.pesquisa (['desde', '25 -Oct-2019 '])
>>> Mail_ids
[919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930]
// fornece um email UID ou uma lista de UIDs de email, depois de executar o comando abaixo,
Seu e -mail vai desaparecer da caixa de entrada.
>>> obj.Delete_Messages (919)
919: ('\\ visto', '\\ deleted')
// Este comando excluirá permanentemente seus e -mails do servidor de correio
>>> obj.expurgar()
('Sucesso', [])
https: // techtopz.com/Build-a-Birthday-Reminder-Aplicação-in-Python-on-Mac/
Fazendo o seu próprio lembrete de aniversário
Você tem aniversários de seus amigos nos próximos meses e deseja desejá -los em seus aniversários. Mas você tem muito trabalho em seu escritório e existe a possibilidade de você esquecer de desejar a eles. Portanto, esta tarefa pode ser executada automaticamente usando Python. A seguir, o código para executar esta tarefa.
// Módulos de importaçãoAgora fazemos um 'aniversário_file', no qual salvamos nomes, endereços de e -mail e sua data de nascimento. Este é um arquivo de texto simples e se parece com isso.
Explicação
Vamos ler este arquivo usando o script python e verificar de quem está chegando e desejamos a eles. Primeiro de tudo, vamos importar alguns módulos. O módulo DateTime tem funções que nos dão data e hora atuais e muito mais. Mas vamos usar isso apenas para encontrar a data e hora atuais. O módulo smtplib é usado para enviar e -mail e foi explicado acima. O módulo RE tem funções que são usadas para encontrar expressão regular de uma string.
Neste script, definimos a função 'Send_mail', que envia e -mails para o 'Reciever_mail_address', cujo nome é 'nome'. Ambos os argumentos são passados para a função do corpo principal do MSG. No corpo principal do script, veremos como encontramos 'Reciever_mail_address' e 'nome'.
Enviar e -mail usando o smtplib foi explicado acima, para que você possa lê -lo e não será discutido aqui.
No corpo principal, vamos ao diretório onde salvamos 'aniversário_file' usando 'os' os.chdir () '. Então temos um 'while loop' que é sempre verdadeiro, então ele verificará o aniversário continuamente. Agora temos data e hora atuais e salvamos na variável 'hoje'. Se parece com isso.
2019-11-01 16:19:07.144925
Extrairemos ano, mês, dia, hora, minutos e segundos usando índices dessas quantidades. Depois disso, abriremos aniversário_file em um objeto 'aniversário_file' no modo de leitura, para que possamos lê -lo apenas. Agora salvaremos todas as linhas deste arquivo na lista de linhas. 'Aniversário_file.ReadLines () 'salvará cada linha na lista de' linhas '. Depois disso, fecharemos o aniversário_file usando 'aniversário_file.Close () 'Função.
Agora vamos ler cada linha um por um usando o loop. Em cada linha, apenas os dados de uma pessoa estão disponíveis em 'Birthday_file', por isso estamos lendo apenas os dados de uma pessoa ao mesmo tempo neste loop.
Depois disso, extrairemos a data de nascimento, endereço de e -mail e nome da pessoa usando o módulo RE. Como escrevemos a data no seguinte formato
AAAA-MM-DD
Então, faremos uma expressão regular 'DateEx', que encontra esse formato na linha.
ré.compilar (r ”\ d 4-\ d 2-\ d 2”)
Comando acima, encontre uma string que tenha '4 dígitos' seguidos por '-' então '2 dígitos' seguidos por '-' e '2 dígitos'. Isso nos dará a data de nascimento da pessoa, para que extraímos Birth_day e Birth_month desta expressão.
Da mesma forma, encontraremos endereço de e -mail usando expressões regulares. Depois disso, compararemos o aniversário_month e o current_month e o aniversário_day e o current_day. Se essas condições estiverem satisfeitas, enviaremos o e -mail de aniversário usando a função 'Send_mail' em exato '08: 00 '.
Agora vamos garantir que este script python seja executado todas as vezes. Para fazer isso, adicionaremos esta tarefa a Crontab. Crontab, no Linux, é usado para executar tarefas automaticamente. O que temos que fazer é apenas adicionar a tarefa a Crontab. Para fazer isso, siga as etapas fornecidas.
ubuntu@ubuntu: ~ $ crontab -e
@reboot python path_to_the_the_script
Os comandos acima permitirão que seu sistema execute o script python toda vez que você reiniciar seu sistema. Dessa forma, seu sistema executará o script python toda vez que seu sistema estiver ligado.