Ir para conteúdo
Fórum Script Brasil

lucas83mariano

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Posts postados por lucas83mariano

  1. 1 hora atrás, ArteEN disse:

    use a ferramenta de busca, procure 'encode', nessa linha vai ter a chamada

    o que você tem que fazer é buscar a documentação oficial do modulo, e ver como você faz o encode da forma correta

    Ixa, continua a ser um mistério. O q eu to fazendo é, basicamente, "imitando" os movimentos do pessoal q deu o curso porque não teve conceito, introdução, nem nada .. já foi direto na prática com exemplo e passando linhas de códigos q funcionam em 'n' ocasiões com algumas explicações bem pontuais.

    Por exemplo, não sei a diferença do uso de colchete, chave, parênteses, aspas; ou ainda o q você mencionou de "documentação oficial do módulo" e fazer o encode. Todo o código do def do email, assim como das listas e etc, já foram passadas prontas; daí o pedido d ajuda aqui iria nessa direção tb, ou seja, pensando q viria uma dica d linha d código correta.

     

    PS.: tenho consciência q o intuito do curso era ser introdutório .. não atoa ele vendeu o "curso completo" ao final da terceira aula .. o conteúdo é beeeem maior.

  2. 1 hora atrás, ArteEN disse:

    começa resolvendo isso

    Eu notei esse erro, mas não faço idéia de onde possa estar ocorrendo. O curso é no formato intensivão, ou seja, não é detalhado, ou aprofundado.

    O teste q estou fazendo não é com a planilha q ele usou, porque a dele está redondinha .. eu fui logo pegando arquivo q eu costumava usar no trabalho pra treinar, mas aí foram aparecendo muitos "obstáculos"; e esse é um deles.

  3. Boa tarde a todos.

    Faz pouco mais de uma semana que vim a conhecer o Python através de um intensivão gratuito q rolou no youtube. Eu ainda estou parado na primeira aula tentando realizar esse envio dos emails.

    Estou fazendo os testes com uma planilha de excel importada pro python, onde tenho informação de candidatos inscritos e matriculados nos devidos cursos. O teste é fazer uma lista de curso e uma lista de emails (visto q pra cada curso haverá um email diferente para envio), pra então eu disparar esses emails com o resultado de cada curso para seu respectivo coordenador analisar.

    Estou usando como guia o código disponibilizado pelo pessoal do curso porém está acontecendo um erro q não sei como solucionar; por isso estou aqui pedindo a ajuda.

    Vou colar abaixo as linhas de códigos e no final o erro (servidor de email será o gmail; estou usando o python no google colab):

    def enviar_email(resultadocursoemail😞
      import smtplib
      import email.message
     
      server = smtplib.SMTP('smtp.gmail.com:587')  
      corpo_email = f"""
      <p>Teste de e-mail</p>
      <p>Segue o relatório</p>
     
      {resultado.to_html()}
     
      <p>Att.</p>
      <p>Lucas Mariano</p>
      """ #vamos editar
        
      msg = email.message.Message()
      msg['Subject'] = f"Relatório de Matriculados - {curso}" #vamos editar
      msg['From'] = '' #vamos editar
      msg['To'] = email
      password = '' #vamos editar
      msg.add_header('Content-Type''text/html')
      msg.set_payload(corpo_email )
        
      s = smtplib.SMTP('smtp.gmail.com: 587')
      s.starttls()
      # Login Credentials for sending the mail
      s.login(msg['From'], password)
      s.sendmail(msg['From'], [msg['To']], msg.as_string().encode('utf-8'))
      print('Email enviado')
    ----------------------------------------------------------
    lista_cursos=resultados["Curso"].unique()
    lista_emails=resultados[["Curso","Email"]].unique()
     
    for i, curso in enumerate(lista_cursos):
      resultado = resultados.loc[resultados["Curso"] == curso,["Curso","Inscrição","Matrícula","Email"]]
      resultado = resultado.groupby("Curso").sum()
      resultado["Resultado_Final"]=((resultado["Matrícula"]/resultado["Inscrição"])*100)
      
      enviar_email(resultado,curso,lista_emails[i])
    ----------------------------------------------------------
    Segue o erro:
     
    AttributeError                            Traceback (most recent call last)
    
    <ipython-input-18-c918ce88880e> in <module>()
          7   resultado["Resultado_Final"]=((resultado["Matrícula"]/resultado["Inscrição"])*100)
          8 
    ----> 9   enviar_email(resultado,curso,lista_emails[i])
         10   display(resultado)
         11 
    
    

    6 frames
    <ipython-input-14-d1543f8c0239> in enviar_email(resultado, curso, email)
         26   # Login Credentials for sending the mail
         27   s.login(msg['From'], password)
    ---> 28   s.sendmail(msg['From'], [msg['To']], msg.as_string().encode('utf-8'))
         29   print('Email enviado')
    
    
    /usr/lib/python3.6/email/message.py in as_string(self, unixfrom, maxheaderlen, policy)
        156                       maxheaderlen=maxheaderlen,
        157                       policy=policy)
    --> 158         g.flatten(self, unixfrom=unixfrom)
        159         return fp.getvalue()
        160 
    
    
    /usr/lib/python3.6/email/generator.py in flatten(self, msg, unixfrom, linesep)
        114                     ufrom = 'From nobody ' + time.ctime(time.time())
        115                 self.write(ufrom + self._NL)
    --> 116             self._write(msg)
        117         finally:
        118             self.policy = old_gen_policy
    
    
    /usr/lib/python3.6/email/generator.py in _write(self, msg)
        193         meth = getattr(msg, '_write_headers', None)
        194         if meth is None:
    --> 195             self._write_headers(msg)
        196         else:
        197             meth(self)
    
    
    /usr/lib/python3.6/email/generator.py in _write_headers(self, msg)
        220     def _write_headers(self, msg):
        221         for h, v in msg.raw_items():
    --> 222             self.write(self.policy.fold(h, v))
        223         # A blank line always separates headers from body
        224         self.write(self._NL)
    
    
    /usr/lib/python3.6/email/_policybase.py in fold(self, name, value)
        324 
        325         """
    --> 326         return self._fold(name, value, sanitize=True)
        327 
        328     def fold_binary(self, name, value):
    
    
    /usr/lib/python3.6/email/_policybase.py in _fold(self, name, value, sanitize)
        367             if self.max_line_length is not None:
        368                 maxlinelen = self.max_line_length
    --> 369             parts.append(h.encode(linesep=self.linesep, maxlinelen=maxlinelen))
        370         parts.append(self.linesep)
        371         return ''.join(parts)
    
    
    AttributeError: module 'email' has no attribute 'encode'

     

    Então, o q estou fazendo de errado?

×
×
  • Criar Novo...