Senden Sie E-Mails über Google Mail mit Python 3.4.3.

Es ist nur eine persönliche Notiz.


#!/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

Senden Sie E-Mails über Google Mail mit Python 3.4.3.
Mail per Python senden
Senden Sie japanische Post mit Python3
Senden Sie mit Python mit Google Mail
[Python] Mail senden
[Python] Mail mit Outlook senden
[Python] Senden Sie eine E-Mail aus Google Mail mit einer zweistufigen Authentifizierungseinstellung
Senden Sie eine E-Mail mit Amazon SES + Python
Mail mit Django senden
Überprüfen Sie die E-Mail mit Python
Senden Sie Google Mail in Python
Senden Sie eine E-Mail mit Excel in Python
Mail senden mit Python (Outlook)
Senden und empfangen Sie Google Mail über die Google Mail-API mit Python
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
[Python] Google Mail mit Python senden: Senden Sie eins nach dem anderen mit mehreren angehängten Bilddateien
Einfache Mailübertragung mit Eile Python3
Hinweis: Senden Sie eine E-Mail mit Django
Senden Sie mehrteilige / Formulardaten mit Python-Anforderungen
Senden Sie mit Django ganz einfach E-Mails mit Google Mail
Sende Bild mit Python und speichere mit PHP
[Python] API zum Senden von Google Mail erstellen
Senden Sie Newsletter auf einmal mit Google Mail
Senden Sie mit Python (Python3) E-Mails an mehrere Empfänger.
Senden Sie Dateien über Step Server mit scp
Python 3.6 E-Mail-Bibliothek
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Senden Sie E-Mails mit Python an eine bestimmte E-Mail-Adresse, ohne SMTP festzulegen
Senden Sie eine E-Mail mit SES in Python und eine Kurznachricht mit SMS auf SNS
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Ich habe versucht, mit django eine E-Mail zum Abschluss der Registrierung von Google Mail zu senden.
Zundokokiyoshi mit Python
Senden und Empfangen von Binärdaten über serielle Kommunikation mit Python3 (auf Mac)
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Senden Sie eine Nachricht mit Python an LINE (LINE Notify)
E-Mail-Anhänge über Ihr Google Mail-Konto mit Python.
Ich möchte mit Python eine E-Mail von Google Mail senden.
Beispiel für eine Slack-Benachrichtigung mit Python Lambda
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Ich habe versucht, eine E-Mail mit SendGrid + Python zu senden
Ich möchte Google Mail mit Python senden, kann dies jedoch aufgrund eines Fehlers nicht
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2