Envoyer un mail avec des pièces jointes

Et leur donner un nom correct

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J'ai actuellement un script qui a pour but d'envoyer un mail avec 9 fichiers de statistiques écrits en texte brut. Le problème de ce script est qu'il me nomme mes fichiers part1.2 -> part1.10 là où les fichiers devraient ressembler à yyyymmdd.host.stat

Voici le script :

 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
filelist = []
if isfile('/tmp/sendmail/lock_sendmail'): # to avoid sending mail when not needed (crontab)
    msg = MIMEMultipart(
        From="fakemail@gmail.com",
        To=COMMASPACE.join(["XXX", "XXX"]),
        Date=formatdate(localtime=True),
        Subject="My daily statistics"
    )
    msg["Subject"] = "My daily statistics"
    msg["Date"] = formatdate(localtime=True)

    msg.attach(MIMEText("my statistics"))
    for directory in listdir('/var/rootdir'):
        if isdir('/var/rootdir/'+directory+'/stats'):
            if isfile(join('/var', 'rootdir', directory, 'stats', yesterday + '.' + directory + '.stat')):
                f_path = join('/var', 'rootdir', directory, 'stats', yesterday + '.' + directory + '.stat')
                with open(f_path, "rb") as fil:
                    attachment = MIMEApplication(
                        fil.read()
                    )
                    attachment.add_header("Content_Disposition",
                                          'attachment',
                                          filename=yesterday + '.' + directory + '.stat')

                    msg.attach(attachment)
    print "go"
    smtp = smtplib.SMTP("lxserver.mail.fr", 25)
    smtp.sendmail("fakemail@gmail.com",
                  ["XXX", "XXX"],
                  msg.as_string())

    print "sent"
    smtp.close()
    remove("/tmp/sendmail/lock_sendmail")

Edit: anonymisation des emails

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte