Wie versende ich einen Random Anhang?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
NicoleBerger
User
Beiträge: 7
Registriert: Donnerstag 8. November 2018, 08:48

Hallo,
ich möchte gerne mit meinem Code meinen Freund mit ein paar schönen Pics von mir überraschen.

Ich nutze Windows und meine Pics (ca. 250) sind unter dem Laufwerk "E" gespeichert. diese Pics sollten mit random ausgewählt werden.

Ich kann mit dem beigefügten Code eine Mail verschicken aber leider nur ohne Anhang? Jede Mail sollte nur ein Pic versenden.

Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht ;-)

Wer kann mir weiterhelfen?


Code:

import os
from envelopes import Envelope, GMailSMTP
import random

envelope = Envelope(
from_addr=(u'from@example.com', u'From Example'),
to_addr=(u'to@example.com', u'To Example'),
subject=u'Überraschung',
text_body=u"Süsse Überraschung"
)
envelope.add_attachment random('/E')

# Send the envelope using an ad-hoc connection...
envelope.send('smtp.googlemail.com', login='from@example.com',
password='password', tls=True)
Benutzeravatar
__blackjack__
User
Beiträge: 14040
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@NicoleBerger: Das sieht ja jetzt eher geraten aus und zwar mit so wirklich *Null* nachdenken. So funktioniert programmieren nicht.

Und die Hoffnung das irgendwelche Nerds denken sie müssten Deinem Freund unbedingt helfen damit er süsse Fotos von Dir bekommen kann, in dem sie das für Dich programmieren ohne das Du irgend etwas machen musst, trägt vielleicht auch nicht all zu weit.

Du musst halt das Problem in kleinere Teilprobleme zerlegen. Und die wieder zerlegen. Solange bis einzelne Teilprobleme übrig bleiben die man jeweils mit einer Funktion mit ein paar Zeilen Code lösen kann. Diese Teillösung testet man dann, ob sie auch das macht was sie soll, und dann geht man zur nächsten Teillösung weiter. Solange bis man aus den ganzen getesteten, funktionierenden Teillösungen eine Gesamtlösung zusammengesetzt hat. Das nennt sich Programmentwicklung.

Mach das mal. Und wenn Du konkrete Probleme bei etwas hat, dann zeig den Code dazu, an dem man bitte ein bisschen Eigeninitiative ablesen können sollte, und beschreibe was der Code machen soll, was er stattdessen macht, und warum Du das so nicht erwartet hast. Falls es eine Ausnahme gibt, zeige den kompletten Traceback dazu. Dann kann man auch helfen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Tholo
User
Beiträge: 177
Registriert: Sonntag 7. Januar 2018, 20:36

Naja zumindest hat sie das Short Example von dem Envelopes Modul hier her kopiert.
Deswegen kann das nicht geraten sein sondern ist 1:1 kopiert (mit Ausnahme vom Path zu "/E" und dem TextBody)

Ich will auch mal kopieren:

Code: Alles auswählen

random_filename = random.choice([
    x for x in os.listdir(path)
    if os.path.isfile(os.path.join(path, x)) and
    x.endswith('.png')
])
Sirius3
User
Beiträge: 18269
Registriert: Sonntag 21. Oktober 2012, 17:20

@Tholo: in aktueller Python-Schreibweise, damit nachfolgende Generationen was zum Kopieren haben:

Code: Alles auswählen

random_filename = random.choice(list(pathlib.Path('E:/').glob("*.jpg")))
Antworten