Mam problemy ze zrozumieniem, jak wysłać załącznik do wiadomości e-mail za pomocą języka Python. Pomyślnie wysłałem e-mailem proste wiadomości za pomocą smtplib
. Czy ktoś mógłby wyjaśnić, jak wysłać załącznik w wiadomości e-mail. Wiem, że są inne posty online, ale jako początkujący Python trudno mi je zrozumieć.
283
Odpowiedzi:
Oto kolejny:
Jest bardzo podobny do pierwszego przykładu ... Ale łatwiej jest wpaść.
źródło
file
naf
.part = MIMEApplication(open(f, 'rb').read())
Oto zmodyfikowana wersja
Oli
dla Pythona 3źródło
import pathlib
zfrom pathlib import Path
to jest kod, który skończyłem przy użyciu:
Kod jest bardzo podobny do postu Oli. Dziękuje wszystkim
Kod oparty na problemie z załącznikiem wiadomości e-mail z plikiem binarnym .
źródło
from email.mime.base import MIMEBase
Przystosowano stąd .
źródło
smtplib
obsługuje. Aby wysłać załączniki, zakoduj je jako wiadomość MIME i wyślij je w wiadomości e-mail w postaci zwykłego tekstu. Jest jednak nowy moduł poczty e-mail w języku Python: docs.python.org/library/email.mime.htmlmsg.as_string()
i na pewno wygląda jak treść wieloczęściowego e-maila MIME. Wikipedia wyjaśnia MIME: en.wikipedia.org/wiki/MIMELine 6, in <module> msg.attach(MIMEText(file("text.txt").read())) NameError: name 'file' is not defined
Inny sposób z python 3 (jeśli ktoś szuka):
Pamiętaj, aby zezwolić na „ mniej bezpieczne aplikacje ” na koncie Gmail
źródło
Wersja Gmaila współpracująca z Pythonem 3.6 (pamiętaj, że musisz zmienić ustawienia Gmaila, aby móc wysyłać z niego wiadomości e-mail za pomocą smtp:
Stosowanie:
Aby używać z dowolnym innym dostawcą poczty e-mail, wystarczy zmienić konfiguracje smtp.
źródło
Najprostszy kod, jaki udało mi się uzyskać to:
Został oparty na oficjalnej dokumentacji Django
źródło
Inne odpowiedzi są doskonałe, chociaż nadal chciałem podzielić się innym podejściem na wypadek, gdyby ktoś szukał alternatyw.
Główną różnicą jest to, że stosując to podejście, możesz użyć HTML / CSS do sformatowania wiadomości, dzięki czemu możesz wykazać się kreatywnością i nadać stylizację swojej wiadomości e-mail. Chociaż nie jesteś zmuszony do używania HTML, możesz nadal używać tylko zwykłego tekstu.
Zauważ, że ta funkcja akceptuje wysyłanie wiadomości e-mail do wielu odbiorców, a także umożliwia dołączanie wielu plików.
Próbowałem tego tylko na Pythonie 2, ale myślę, że powinno również działać dobrze na 3:
Mam nadzieję, że to pomoże! :-)
źródło
Aby uzyskać wyjaśnienie, możesz użyć tego linku, który wyjaśnia poprawnie https://medium.com/@sdoshi579/to-send-an-email-along-with-attachment-using-smtp-7852e77623
źródło
źródło
Poniżej znajduje się kombinacja tego, co znalazłem w poście SoccerPlayera tutaj oraz poniższy link, który ułatwił mi załączenie pliku xlsx. Znaleziono tutaj
źródło
Za pomocą mojego kodu możesz wysyłać załączniki do wiadomości e-mail za pomocą Gmaila, musisz:
ustaw swój adres Gmail na „ SWÓJ E-MAIL SMTP TUTAJ ”
ustaw hasło do konta Gmail na „ HASŁO SMTP TUTAJ ”
W części ___EMAIL, ABY OTRZYMAĆ WIADOMOŚĆ_ , musisz ustawić docelowy adres e-mail.
Powiadomienie o alarmie jest przedmiotem,
Ktoś wszedł do pokoju, załączone zdjęcie to ciało
[„/home/pi/webcam.jpg”] to załącznik obrazu.
źródło
Możesz również określić typ załącznika, który chcesz w wiadomości e-mail, jako przykład użyłem pdf:
inspiracje / kredyty do: http://linuxcursor.com/python-programming/06-how-to-send-pdf-ppt-attachment-with-html-body-in-python-script
źródło