[Python] Envoyer gmail avec python: envoyez un par un avec plusieurs fichiers image en pièce jointe

introduction

Ceci est un résumé lorsque j'enquêtais parce que je voulais envoyer gmail avec python. Juste un mémo.

À peu près la même que la référence ci-dessous,

Les photos d'un répertoire spécifique sont lues et envoyées à plusieurs reprises.

Référence: https://qiita.com/numaC/items/076474934a3bb45647bd

Merci pour le site de référence.

Contenu

Conclusion

La conclusion est la suivante. Cependant, je pense que dans la plupart des cas, vous obtiendrez un "SMTPAuthenticationError". Veuillez vous y référer dans la section "Contenu" ci-dessous.

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" #Adresse e-mail de l'expéditeur et informations de connexion pour Gmail
    to = '[email protected]'  #Adresse e-mail de destination
    sub = 'Envoi de courrier de test' #Sujet du courriel
    body = 'L'image est jointe.'  #le contenu de l'e-mail
    host, port = 'smtp.gmail.com', 587

    #En-tête de courrier
    msg = MIMEMultipart()
    msg['Subject'] = sub
    msg['From'] = sender
    msg['To'] = to

    #le contenu de l'e-mail
    body = MIMEText(body)
    msg.attach(body)

    #Partie supplémentaire
    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)

        #Paramètres des fichiers joints
        attach_file = {
            'name': os.path.basename(target_list),
            'path': target_list
        } #nom est le nom du fichier joint. chemin spécifie l'emplacement du fichier joint
        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)

        #Connectez-vous à Gmail(Utilisé comme serveur SMTP)
        gmail=SMTP("smtp.gmail.com", 587)
        gmail.starttls() #Crypter les commandes de communication SMTP et passer l'authentification d'accès au serveur
        gmail.login(sender, password)
        gmail.send_message(msg)
        len_cnt += 1
        print('Courrier' + str(len_cnt) + '/' + str(fetch_from_dir_len) + 'Envoyé')


if __name__ == '__main__':
    sendGmailAttach()
    print('Tous les e-mails ont été envoyés')

Résultat d'exécution


$ python sendmail.py
C:\Users\hogehoge\img\1.jpg
Courriel 1/3 envoyés
C:\Users\hogehoge\img\2.jpg
Courriel 2/3 envoyés
C:\Users\hogehoge\img\3.jpg
Courriel 3/3 envoyés
Tous les e-mails ont été envoyés

Contenu

À propos de l'erreur au moment de la transmission

Vous obtiendrez probablement l'erreur suivante lorsque vous exécuterez le programme:

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

Ceci est résolu du côté de gmail comme "utiliser le mot de passe de l'application".

Ce qui suit est un site de référence. Merci beaucoup.

Référence: https://www.gocca.work/python-mailerror/

J'écrirai une procédure approximative, mais pour plus de détails, consultez le site de référence.

-Étape 1: après vous être connecté à votre compte Google
-Étape 2: configuration du "processus d'authentification en deux étapes"
-Étape 3: Générer un "mot de passe d'application"

À propos du programme

Puisque je l'ai noté comme méthode pour le moment, la gestion des erreurs, etc. ne suffit pas, veuillez donc prendre les mesures appropriées.

Recommended Posts

[Python] Envoyer gmail avec python: envoyez un par un avec plusieurs fichiers image en pièce jointe
Tri des fichiers image avec Python (2)
Tri des fichiers image avec Python (3)
Tri des fichiers image avec Python
Envoyer en utilisant Python avec Gmail
Envoyer l'image avec python et enregistrer avec php
Envoyer des e-mails via gmail avec Python 3.4.3.
mail html avec image à envoyer avec python
Combinez plusieurs fichiers python en un seul fichier python
[Python & Unix] Combinez plusieurs fichiers PDF en un seul.
Effacez les fichiers image à la fois avec un seul support
Convertissez plusieurs fichiers proto à la fois avec python
Envoyer un e-mail avec Excel en pièce jointe en Python
Traitement d'image avec Python
Envoyer des e-mails par Python
Envoyer Gmail en Python
Extraire le tableau des fichiers image avec OneDrive et Python
Génération d'images JPEG en spécifiant la qualité avec Python + OpenCV
Supprimer les en-têtes de fichiers CSV à plusieurs formats avec python
Combinez plusieurs fichiers csv en un seul fichier csv avec python (en supposant qu'une seule ligne d'en-tête)
Traitement d'image avec Python (partie 2)
Envoyer du courrier japonais avec Python3
[Python] Envoyez un e-mail depuis Gmail avec le paramètre d'authentification en deux étapes
Traitez d'énormes fichiers Excel avec Python pour améliorer la productivité
Édition d'image avec python OpenCV
Trier de gros fichiers avec python
Traitement d'image avec Python (partie 1)
Tweet avec image en Python
Intégrez des fichiers PDF avec Python
Traitement d'image avec Python (3)
Lire des fichiers .txt avec Python
Traitement d'image par python (Pillow)
Décompressez plusieurs fichiers compressés (Python)
[Python] Lecture facile des fichiers image du numéro de série avec OpenCV
[Python] Traitement d'image avec scicit-image
Deux façons d'afficher plusieurs graphiques dans une seule image avec matplotlib
Découpez une image avec python
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
[Python] Tri itérable selon plusieurs conditions
Extraire récursivement des fichiers zip avec python
Manipulation des fichiers EAGLE .brd avec Python
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
[Automation] Envoyer des e-mails Outlook avec Python
Charger plusieurs fichiers JavaScript avec PyWebView
[Python] Fichiers wav POST avec requêtes [POST]
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Traitement d'image avec la binarisation Python 100 knocks # 3
Publiez plusieurs images Twitter avec python
Animez plusieurs images fixes avec Python
Faisons du scraping d'images avec Python
Gérer les fichiers Excel CSV avec Python
Lire des fichiers en parallèle avec Python
Trouver la similitude d'image avec Python + OpenCV
Intégration multiple avec Python et Sympy
100 traitement d'image par Python Knock # 2 Échelle de gris
[Python] Envoyez des e-mails avec Outlook
[Python] Création de plusieurs fenêtres avec Tkinter
Envoyer des données multipart / form avec des requêtes python
Envoyez facilement des e-mails avec Gmail avec Django
[Python] Créer une API pour envoyer Gmail