Envio e-mail com anexo

177 views
Skip to first unread message

Denis Alexandre da Silva

unread,
Jan 28, 2021, 8:55:04 AM1/28/21
to python...@googlegroups.com
Prezados,

Bom dia.
Alguem utiliza com sucesso python para envio de email com anexos?
Tentei utilizar um código para envio utilizando gmail o código executado com sucesso mas nunca recebo a mensagem.
Achei que era alguma restrição do gmail e criei uma conta outlook.com mas também sem sucesso.
Se alguém puder indicar algum link com implementação de sucesso  agradeço imensamente.  

Obrigado

Itamar Reis Peixoto

unread,
Jan 28, 2021, 9:11:04 AM1/28/21
to python...@googlegroups.com, Denis Alexandre da Silva
utilize a implementaçao do flask ou o django.


On 2021-01-28 10:54 AM, Denis Alexandre da Silva wrote:
> Prezados,
>
> Bom dia.
> Alguem utiliza com sucesso python para envio de email com anexos?
> Tentei utilizar um código para envio utilizando gmail o código
> executado com sucesso mas nunca recebo a mensagem.
> Achei que era alguma restrição do gmail e criei uma conta
> outlook.com [1] mas também sem sucesso.

Linux - Junior Polegato

unread,
Jan 28, 2021, 9:14:42 AM1/28/21
to python...@googlegroups.com
Olá!

        Eu utilizo a função "enviar_email" em Python 2.7 do código em [1] que eu mantenho, está na linha 810, pode ser que te ajude.

[1] https://github.com/JuniorPolegato/pole/blob/master/src/pole/PoleUtil.py

-- 

[]'s

Junior Polegato

BM Informatica

unread,
Jan 28, 2021, 2:10:32 PM1/28/21
to python...@googlegroups.com
Boa tarde.
Segue exemplo.:

mail_content = f'''     {bmMaTa} {bmCont}.

     Nota em anexo.

     Valor..: {bmValo}
     Vencto.: {bmVenc}

     Chave PIX.: {bmChPi}

     []s
     Francisco.

--------------------------------    
BM Informática
Sistemas Personalizados
17-3331-5888
<*> Powered by Linux <*>
 '''

sender_address = 'email...@hotmail.com'
sender_pass = 'senhamail'
receiver_address = 'destin...@email.com'

message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'Nota Fiscal'

message.attach(MIMEText(mail_content, 'plain'))

bmAnexx = ['anexo1.pdf', 'anexo2.pdf']

for bmA in bmAnexx:
   attach_file_name = bmA
   attach_file = open(attach_file_name, 'rb')

payload = MIMEBase('application', 'pdf', Name=bmA)
payload.set_payload((attach_file).read())

encoders.encode_base64(payload)
payload.add_header('Content-Decomposition', 'attachment', filename=bmA)

message.attach(payload)

session = smtplib.SMTP('smtp.office365.com', 587)
session.starttls()
session.login(sender_address, sender_pass)

text = message.as_string()

session.sendmail(sender_address, receiver_address, text)
session.quit()

print('Mail Sent')

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/CAH2cvbSusCe%2BteaTZwvPfwAs94A10T1ZcGXYSK8AnjdfOk0jPw%40mail.gmail.com.


--
==================
BM Informatica
bminf...@gmail.com
b...@bmonline.com.br
<* Powered By Linux *>

Analista Sistemas

unread,
Jan 29, 2021, 9:44:54 AM1/29/21
to Python Brasil
Boa tarde amigo, eu utilizo esse código para enviar email com anexo!
acho que da para entender, se tiver alguma duvida é so perguntar.


import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

print('Robo iniciado...')
# email de envio e lista de contatos
from_address = ''
pass_user = ''
to_address = ''

# iniciando a mensagem
msg = MIMEMultipart()
print('Criando mensagem...')
msg['From'] = from_address
msg['To'] = to_address
msg['Subject'] = 'Teste com Python'

# criando corpo da mensagem
body = 'Teste de automação com python.....:'
msg.attach(MIMEText(body, 'plain'))

# configurando anexo
filename = 'arquivo.pdf'
attach = open('arquivo.pdf', 'rb')

# criando arquivo e setando o carregamento
file = MIMEBase('application', 'octet-stream')
file.set_payload((attach).read())

# codificando com base64
encoders.encode_base64(file)

# corpo de anexo exigido pelo email
file.add_header('Content-Disposition', f'attachment; filename={filename}')

# coloando o anexo na mensagem
msg.attach(file)

# servidor SMTP
data_smtp = smtplib.SMTP('smtp.gmail.com', 587)
print('Conectando para envio...')
# iniciando conexão segura via ttls
data_smtp.starttls()

# realizando login no email de envio
data_smtp.login(from_address, pass_user)

# convertendo a mensagem para string
message = msg.as_string()

# enviando email
data_smtp.sendmail(from_address, to_address, message)
data_smtp.quit()
print('Mensagem enviada!')

Denis Alexandre da Silva

unread,
Jan 31, 2021, 9:42:52 AM1/31/21
to python...@googlegroups.com
Descobri que o problema era a autenticação do email. Nestes casos precisa gerar uma senha especial

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages