Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Python - Enviando e-mail usando SMTP

Página anteriorPróxima página
O protocolo SMTP (Simple Mail Transfer Protocol) é um protocolo que lida com o envio e o roteamento de e-mail entre servidores de e-mail.

Python fornece smtplib módulo, que define um objeto de sessão de cliente SMTP que pode ser usado para enviar correio a qualquer máquina da Internet com um daemon de escuta SMTP ou ESMTP.

Esta é uma sintaxe simples para criar um objeto SMTP, que pode ser usado posteriormente para enviar um e-mail -
 import smtplibsmtpObj =smtplib.SMTP ([host [, port [, local_hostname]]]) 

Aqui está o detalhe dos parâmetros -

Um objeto SMTP possui um método de instância chamado sendmail , que normalmente é usado para fazer o trabalho de enviar uma mensagem. Leva três parâmetros -

Exemplo


Esta é uma maneira simples de enviar um e-mail usando o script Python. Experimente uma vez -
 #! / usr / bin / pythonimport smtplibsender ='from@fromdomain.com'receivers =['to@todomain.com'] message ="" "De:De Pessoa  Para:Para Pessoa  Assunto:Teste de e-mail SMTPEsta é uma mensagem de e-mail de teste. "" "try:smtpObj =smtplib.SMTP ('localhost') smtpObj.sendmail (remetente, destinatários, mensagem) print "Email enviado com sucesso", exceto SMTPException:print "Erro:não foi possível enviar email" 

Aqui, você colocou um e-mail básico na mensagem, usando aspas triplas, cuidando para formatar os cabeçalhos corretamente. Um e-mail requer um De , para e Assunto cabeçalho, separado do corpo do e-mail por uma linha em branco.

Para enviar o e-mail você usa smtpObj para se conectar ao servidor SMTP na máquina local e, em seguida, use o sendmail junto com a mensagem, o endereço de e o endereço de destino como parâmetros (embora os endereços de e para estejam dentro do próprio e-mail, eles nem sempre são usados ​​para rotear e-mails).

Se você não estiver executando um servidor SMTP em sua máquina local, você pode usar smtplib cliente para se comunicar com um servidor SMTP remoto. A menos que você esteja usando um serviço de webmail (como Hotmail ou Yahoo! Mail), seu provedor de e-mail deve ter fornecido a você os detalhes do servidor de correio de saída que você pode fornecer, da seguinte forma -
 smtplib.SMTP ('mail.your-domain.com', 25) 

Enviando um e-mail HTML usando Python


Quando você envia uma mensagem de texto usando Python, todo o conteúdo é tratado como texto simples. Mesmo se você incluir tags HTML em uma mensagem de texto, ela será exibida como texto simples e as tags HTML não serão formatadas de acordo com a sintaxe HTML. Mas o Python oferece a opção de enviar uma mensagem HTML como uma mensagem HTML real.

Ao enviar uma mensagem de e-mail, você pode especificar uma versão Mime, tipo de conteúdo e conjunto de caracteres para enviar um e-mail em HTML.

Exemplo


A seguir está o exemplo para enviar conteúdo HTML como um e-mail. Experimente uma vez -
 #! / usr / bin / pythonimport smtplibmessage ="" "De:De Pessoa  Para:Para Pessoa  Versão MIME:1.0Content -type:text / htmlSubject:SMTP HTML e-mail testEsta é uma mensagem de e-mail a ser enviada em formato HTML  Esta é a mensagem HTML.  

Este é o título.

"" "try:smtpObj =smtplib.SMTP ('localhost') smtpObj.sendmail (remetente, destinatários, mensagem) print" Email enviado com sucesso "exceto SMTPException:print" Erro:não foi possível enviar email "

Envio de anexos por e-mail


Para enviar um e-mail com conteúdo misto, é necessário definir Tipo de conteúdo cabeçalho para multipart / misto . Então, as seções de texto e anexo podem ser especificadas dentro dos limites .

Um limite é iniciado com dois hifens seguidos por um número exclusivo, que não pode aparecer na parte da mensagem do e-mail. Um limite final denotando a seção final do e-mail também deve terminar com dois hifens.

Os arquivos anexados devem ser codificados com o pacote ("m") função para ter codificação base64 antes da transmissão.

Exemplo


A seguir está o exemplo, que envia um arquivo /tmp/test.txt como um anexo. Experimente uma vez -
 #! / usr / bin / pythonimport smtplibimport base64filename ="/tmp/test.txt"# Leia um arquivo e codifique-o em base64 formatfo =open (nome do arquivo," rb ") filecontent =fo .read () encodedcontent =base64.b64encode (filecontent) # base64sender ='webmaster@tutorialpoint.com'reciever ='amrood.admin@gmail.com'marker ="AUNIQUEMARKER" body ="" "Este é um e-mail de teste para enviar um anexo. "" "# Define the main headers.part1 =" "" From:From Person  To:To Person  Assunto:Enviando AttachementMIME-Version:1.0Content -Type:multipart / mixed; boundary =% s -% s "" "% (marcador, marcador) # Defina a mensagem actionpart2 =" "" Content-Type:text / plainContent-Transfer-Encoding:8bit% s-- % s "" "% (corpo, marcador) # Definir o anexo sectionpart3 =" "" Content-Type:multipart / mixed; name =\ "% s \" Content-Transfer-Encoding:base64Content-Disposition:attachment; filename =% s% s -% s-- "" "% (nome do arquivo, nome do arquivo, conteúdo codificado, marcador) mensagem =part1 + part2 + part3t ry:smtpObj =smtplib.SMTP ('localhost') smtpObj.sendmail (remetente, destinatário, mensagem) print "Email enviado com sucesso" exceto Exceção:print "Erro:não foi possível enviar email" 

python

  1. Tutorial PyTest:O que é, como instalar, estrutura, afirmações
  2. SciPy em Python Tutorial:O que é | Biblioteca e exemplos de funções
  3. Conjuntos Python
  4. Processamento de imagem Python com travesseiro
  5. Tutorial PyQt5 com exemplos:Design GUI usando PyQt em Python
  6. Programação Orientada a Objetos Python