Obtenir un corps vide à chaque fois que l'envoi d'un e-mail linux avec subprocess.call en python

voix
0

Je suis en train d' écrire un script python qui va envoyer un e - mail lorsqu'une exception est levée. Je reçois l'e - mail, cependant, le corps est vide à chaque fois - je reçois le Null message body; hope that's okmessage lorsque le sous - processus est appelé.

Voici mon code:

subject = This is the subject
f = open('body.txt', w+)
body = Email body goes here.
f.write(body)
subprocess.call(['mail', '-s', subject, 'addr@example.com'],stdin=f)
f.close()

Pourquoi est-ce que je reçois un corps vide à chaque fois? Je ne pense pas que je comprends comment stdin subprocessfonctionne exactement.

Créé 07/11/2018 à 20:11
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous devez fermer f avant d' appeler subprocess.call(). Dans le cas contraire, fne sera pas rincée par le temps le maillit, et il n'y aura aucune garantie que tout a déjà été écrit dans le fichier.

Créé 07/11/2018 à 20:58
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more