Envoyer des e-mails via gmail avec Python 3.4.3.

C'est juste une note personnelle.


#!/usr/bin/python

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formatdate

class Gmail:
    """
    Gmail with smtp client
    """
    def __init__(self, login_addr, passwd, encoding='utf-8'):
        self._encoding = encoding
        self._login_addr = login_addr
        self._passwd = passwd

    def send(self, to_addr, from_addr, subject, body):
        """
        Send a mail via gmail
        """
        msg = self._format_email(to_addr, from_addr, subject, body)
        with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
            stmp.ehlo()
            stmp.starttls()
            stmp.ehlo()
            stmp.login(self._login_addr, self._passwd)
            stmp.sendmail(from_addr, to_addr, msg.as_string())

    def _format_email(self, to_addr, from_addr, subject, body):
        msg = MIMEText(body, 'html', self._encoding)
        msg['Subject'] = Header(subject, self._encoding)
        msg['From'] = from_addr
        msg['To'] = to_addr
        msg['Date'] = formatdate()

        return msg

    def bulk_send(self, emails):
        """
        Send multiple mails at one time via gmail
        """
        with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
            smtp.ehlo()
            smtp.starttls()
            smtp.ehlo()
            smtp.login(self._login_addr, self._passwd)
            for email in emails:
                msg = self._format_email(email['to_addr'], email['from_addr'],
                                         email['subject'], email['body'])
                smtp.sendmail(email['from_addr'], email['to_addr'],
                              msg.as_string())


if __name__ == "__main__":
    gmail = Gmail('[email protected]', 'foo')
    gmail.send('[email protected]', '[email protected]', 'test', 'test')
    addr = '[email protected]'
    mails = [{'to_addr': addr, 'from_addr': addr, 'subject': 'test', 'body': 'test'}] * 10
    gmail.bulk_send(mails)




Recommended Posts

Envoyer des e-mails via gmail avec Python 3.4.3.
Envoyer des e-mails par Python
Envoyer du courrier japonais avec Python3
Envoyer en utilisant Python avec Gmail
[Python] Envoyer un e-mail
[Python] Envoyez des e-mails avec Outlook
[Python] Envoyez un e-mail depuis Gmail avec le paramètre d'authentification en deux étapes
Envoyer un e-mail avec Amazon SES + Python
Envoyer des e-mails avec Django
Valider l'e-mail avec Python
Envoyer Gmail en Python
Envoyer un e-mail avec Excel en pièce jointe en Python
Envoyer des e-mails avec Python (Outlook)
Envoyez et recevez Gmail via l'API Gmail en utilisant Python
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python
[Python] Envoyer gmail avec python: envoyez un par un avec plusieurs fichiers image en pièce jointe
Transmission de courrier facile avec Hâte Python3
Remarque: envoyer un e-mail avec Django
Envoyer des données multipart / form avec des requêtes python
Envoyez facilement des e-mails avec Gmail avec Django
Envoyer l'image avec python et enregistrer avec php
[Python] Créer une API pour envoyer Gmail
Envoyez des newsletters en une seule fois avec Gmail
Envoyer des e-mails à plusieurs destinataires avec Python (Python3)
Envoyer des fichiers via le serveur d'étape avec scp
Bibliothèque de messagerie Python 3.6
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Envoyer des e-mails à une adresse e-mail spécifique avec python sans paramétrer SMTP
Envoyer un e-mail avec SES en Python et un message court avec SMS sur SNS
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
J'ai essayé d'envoyer un e-mail de fin d'inscription depuis Gmail avec django.
Zundokokiyoshi avec python
Envoyer et recevoir des données binaires via une communication série avec python3 (sur Mac)
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Envoyer un message à LINE avec Python (LINE Notify)
Pièces jointes par e-mail à l'aide de votre compte gmail avec python.
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
Exemple de notification Slack avec python lambda
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail
J'ai essayé d'envoyer un email avec SendGrid + Python
Je souhaite envoyer Gmail avec Python, mais je ne peux pas en raison d'une erreur
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2