[Python] Google Mail mit Python senden: Senden Sie eins nach dem anderen mit mehreren angehängten Bilddateien

Einführung

Dies ist eine Zusammenfassung, als ich nachforschte, weil ich Google Mail mit Python senden wollte. Nur ein Memo.

Etwa das gleiche wie die Referenz unten,

Die Fotos in einem bestimmten Verzeichnis werden wiederholt gelesen und gesendet.

Referenz: https://qiita.com/numaC/items/076474934a3bb45647bd

Vielen Dank für die Referenzseite.

Inhalt

Fazit

Die Schlussfolgerung lautet wie folgt. Ich denke jedoch, dass Sie in den meisten Fällen einen "SMTPAuthenticationError" erhalten. Bitte beziehen Sie sich darauf aus dem Abschnitt "Inhalt" unten.

sendmail.py


import os
import glob
from smtplib import SMTP
from email.mime.text import MIMEText
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart

def sendGmailAttach():
    sender, password = "[email protected]", "testtest" #E-Mail-Adresse des Absenders und Anmeldeinformationen für Google Mail
    to = '[email protected]'  #Ziel-E-Mail-Adresse
    sub = 'Testmail senden' #E-Mail Betreff
    body = 'Das Bild ist beigefügt.'  #den Inhalt der E-Mail
    host, port = 'smtp.gmail.com', 587

    #Mail-Header
    msg = MIMEMultipart()
    msg['Subject'] = sub
    msg['From'] = sender
    msg['To'] = to

    #den Inhalt der E-Mail
    body = MIMEText(body)
    msg.attach(body)

    #Zusätzlicher Teil
    fetch_from_dir = glob.glob(os.getcwd() + "\img/*")
    fetch_from_dir_len = len(fetch_from_dir)
    len_cnt = 0
    for target_list in fetch_from_dir:
        print(target_list)

        #Angehängte Dateieinstellungen
        attach_file = {
            'name': os.path.basename(target_list),
            'path': target_list
        } #name ist der angehängte Dateiname. Pfad gibt den Speicherort der angehängten Datei an
        attachment = MIMEBase('image', 'png')
        file = open(attach_file['path'], 'rb+')
        attachment.set_payload(file.read())
        file.close()
        encoders.encode_base64(attachment)
        attachment.add_header("Content-Disposition", "attachment", filename=attach_file['name'])
        msg.attach(attachment)

        #Stellen Sie eine Verbindung zu Google Mail her(Wird als SMTP-Server verwendet)
        gmail=SMTP("smtp.gmail.com", 587)
        gmail.starttls() #Verschlüsseln Sie SMTP-Kommunikationsbefehle und übergeben Sie die Serverzugriffsauthentifizierung
        gmail.login(sender, password)
        gmail.send_message(msg)
        len_cnt += 1
        print('Mail' + str(len_cnt) + '/' + str(fetch_from_dir_len) + 'Geschickt')


if __name__ == '__main__':
    sendGmailAttach()
    print('Alle E-Mails wurden gesendet')

Ausführungsergebnis


$ python sendmail.py
C:\Users\hogehoge\img\1.jpg
E-Mail 1/3 gesendet
C:\Users\hogehoge\img\2.jpg
E-Mail 2/3 gesendet
C:\Users\hogehoge\img\3.jpg
E-Mail 3/3 gesendet
Alle E-Mails wurden gesendet

Inhalt

Über Fehler zum Zeitpunkt der Übertragung

Beim Ausführen des Programms wird wahrscheinlich der folgende Fehler angezeigt:

smtplib.SMTPAuthenticationError: (535, ‘5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials

Dies wird auf der Google Mail-Seite als "App-Passwort verwenden" behoben.

Das Folgende ist eine Referenzseite. Vielen Dank.

Referenz: https://www.gocca.work/python-mailerror/

Ich werde eine grobe Prozedur schreiben, aber für Details siehe die Referenzseite.

-Schritt 1: Nachdem Sie sich bei Ihrem Google-Konto angemeldet haben
-Schritt 2: Richten Sie den "2-Schritt-Authentifizierungsprozess" ein.
-Schritt 3: Generieren Sie "App-Passwort"

Über das Programm

Da ich es vorerst als Methode aufgeschrieben habe, reicht die Fehlerbehandlung usw. nicht aus. Ergreifen Sie daher bitte geeignete Maßnahmen.

Recommended Posts

[Python] Google Mail mit Python senden: Senden Sie eins nach dem anderen mit mehreren angehängten Bilddateien
Sortieren von Bilddateien mit Python (2)
Sortieren von Bilddateien mit Python (3)
Bilddateien mit Python sortieren
Senden Sie mit Python mit Google Mail
Sende Bild mit Python und speichere mit PHP
Senden Sie E-Mails über Google Mail mit Python 3.4.3.
HTML-Mail mit Bild zum Senden mit Python
Kombinieren Sie mehrere Python-Dateien zu einer Python-Datei
[Python & Unix] Kombinieren Sie mehrere PDF-Dateien zu einer.
Löschen Sie Bilddateien sofort mit einem Liner
Konvertieren Sie mehrere Protodateien gleichzeitig mit Python
Senden Sie eine E-Mail mit Excel in Python
Bildverarbeitung mit Python
Mail per Python senden
Senden Sie Google Mail in Python
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
JPEG-Bilderzeugung durch Angabe der Qualität mit Python + OpenCV
Entfernen Sie Überschriften aus CSV-Dateien mit mehreren Formaten mit Python
Kombinieren Sie mehrere CSV-Dateien mit Python zu einer CSV-Datei (vorausgesetzt, nur eine Kopfzeile)
Bildverarbeitung mit Python (Teil 2)
Senden Sie japanische Post mit Python3
[Python] Senden Sie eine E-Mail aus Google Mail mit einer zweistufigen Authentifizierungseinstellung
Verarbeiten Sie große Excel-Dateien mit Python, um die Produktivität zu verbessern
Bildbearbeitung mit Python OpenCV
Sortieren Sie große Dateien mit Python
Bildverarbeitung mit Python (Teil 1)
Tweet mit Bild in Python
Integrieren Sie PDF-Dateien in Python
Bildverarbeitung mit Python (3)
TXT-Dateien mit Python lesen
Bildverarbeitung mit Python (Pillow)
Entpacke mehrere komprimierte Dateien (Python)
[Python] Mit OpenCV können Sie problemlos Bilddateien mit Seriennummern lesen
[Python] Bildverarbeitung mit Scicit-Image
Zwei Möglichkeiten, mit matplotlib mehrere Grafiken in einem Bild anzuzeigen
Schneiden Sie ein Bild mit Python aus
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
[Python] Sortierbar nach mehreren Bedingungen sortieren
Extrahieren Sie Zip-Dateien rekursiv mit Python
Bearbeiten von EAGLE .brd-Dateien mit Python
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
[Automatisierung] Senden Sie Outlook-E-Mails mit Python
Laden Sie mehrere JavaScript-Dateien mit PyWebView
[Python] POST-WAV-Dateien mit Anforderungen [POST]
Mit OpenSSL mit Python 3 verschlüsselte Dateien entschlüsseln
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
Veröffentlichen Sie mehrere Twitter-Bilder mit Python
Animieren Sie mehrere Standbilder mit Python
Lassen Sie uns mit Python Image Scraping durchführen
Behandeln Sie Excel-CSV-Dateien mit Python
Lesen Sie Dateien parallel zu Python
Finden Sie Bildähnlichkeit mit Python + OpenCV
Mehrfachintegration mit Python und Sympy
100 Bildverarbeitung mit Python Knock # 2 Graustufen
[Python] Mail mit Outlook senden
[Python] Erstellen mehrerer Fenster mit Tkinter
Senden Sie mehrteilige / Formulardaten mit Python-Anforderungen
Senden Sie mit Django ganz einfach E-Mails mit Google Mail
[Python] API zum Senden von Google Mail erstellen