Python - problema con envío de emails con archivo adjunto en python

 
Vista:
sin imagen de perfil

problema con envío de emails con archivo adjunto en python

Publicado por dani (1 intervención) el 27/03/2017 21:25:58
hola, estoy inmerso en un proyecto y no me acabo de salir con la mía, la idea es enviar un email con un archivo adjunto cada vez que se acciona un pulsador,

El montaje va bien, pero en determinadas condiciones envía la imagen totalmente en negro.

Dejo el código por si alguien ve el problema.

Muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
 
USERNAME = "username@gmail.com"
PASSWORD = "password"
 
def sendMail(to, subject, text, files=[]):
    assert type(to)==list
    assert type(files)==list
 
    msg = MIMEMultipart()
    msg['From'] = USERNAME
    msg['To'] = COMMASPACE.join(to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject
 
    msg.attach( MIMEText(text) )
 
    for file in files:
        part = MIMEBase('application', "octet-stream")
        part.set_payload( open(file,"rb").read() )
        Encoders.encode_base64(part)
        part.add_header('Content-Disposition', 'attachment; filename="%s"'
                       % os.path.basename(file))
        msg.attach(part)
 
	server = smtplib.SMTP('smtp.gmail.com:587')
	server.ehlo_or_helo_if_needed()
	server.starttls()
	server.ehlo_or_helo_if_needed()
	server.login(USERNAME,PASSWORD)
	server.sendmail(USERNAME, to, msg.as_string())
	server.quit()
 
sendMail( ["*******your_email********@gmail.com"],
        "Doorbell notification",
        "Someone is ringing the doorbell, picture attached",
        ["/home/pi/webcam.jpg"] )
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder