Envoyer du courrier à l'aide du smtplib de Python

Envoyer du courrier à l'aide du smtplib de Python

1. Environnement

- Windows7
- Python2.7.13

2. Ce que vous voulez faire

--Envoyer du courrier en utilisant python --Définir plusieurs personnes pour la destination et Cc

3. Code de programme

import os.path
import datetime
import smtplib
import codecs, collections
import tempfile
import zipfileJPN as zipfile
import unittest, time, re, os, sys,datetime, shutil
import MimeWriter, mimetools, base64, StringIO

from email import Encoders
from email.Utils import formatdate
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

def create_message(from_addr, from_addr_name, to_addr, cc_addr, subject, body, mime, attach_file):

    zf = tempfile.TemporaryFile(prefix='mail', suffix='.zip')
    zip = zipfile.ZipFile(zf, 'w')
    files = os.listdir(attach_file['path'])
    for i in files:
        filename =""
        filename=i
        zip.write(attach_file['path']+"/"+(filename.decode("cp932")).encode("cp932"))
    zip.close()
    zf.seek(0)

    cset = 'utf-8'
    msg = MIMEMultipart()
    msg["Subject"] = subject
    msg["From"] = from_addr_name+"<"+from_addr+">"
    msg["To"] = to_addr
    msg["Cc"] = cc_addr
    msg["Date"] = formatdate()
    body = MIMEText(body.encode("utf-8"), 'plain', 'utf-8')
    msg.attach(body)

    attachment = MIMEBase(mime['type'],mime['subtype'])
    attachment.set_payload(zf.read())
    Encoders.encode_base64(attachment)
    msg.attach(attachment)
    attachment.add_header("Content-Disposition","attachment", filename=attach_file['name'])
    return msg

def send(from_addr, to_addrs, cc_addrs, msg):
    smtp = smtplib.SMTP("localhost:host")#Changement requis
    smtp.sendmail(from_addr, to_addrs+cc_addrs, msg.as_string())
    smtp.close()

if __name__ == '__main__':
    from_addr="[email protected]"
    from_addr_name = "tester"
    to_addr = "[email protected],[email protected]"
    cc_addr = "[email protected],[email protected]"
    subject = u"tester"
    body = u"tester"
    mime={'type':'application', 'subtype':'zip'}
    attach_file={'name':'FileName.zip', 'path':'D://test/File'}
    msg = create_message(from_addr, from_addr_name, to_addr, cc_addr, subject, body, mime, attach_file)
    send(from_addr,to_addr_list, cc_addr_list, msg)

4. Description

1. Envoyez un e-mail en utilisant python

def send(from_addr, to_addrs, cc_addrs, msg):
    smtp = smtplib.SMTP("localhost:host")#Changement requis
    smtp.sendmail(from_addr, to_addrs+cc_addrs, msg.as_string())
    smtp.close()

2. Définissez plusieurs personnes pour la destination et Cc

3. Joignez le fichier zip

  zf = tempfile.TemporaryFile(prefix='mail', suffix='.zip')
    zip = zipfile.ZipFile(zf, 'w')
    files = os.listdir(attach_file['path'])
    for i in files:
        filename =""
        filename=i
        zip.write(attach_file['path']+"/"+(filename.decode("cp932")).encode("cp932"))
    zip.close()
    zf.seek(0)

4. Utilisez le japonais pour les noms de fichiers joints

import zipfileJPN as zipfile

キャプチャ.PNG

Recommended Posts

Envoyer du courrier à l'aide du smtplib de Python
[boto3] Envoyer un e-mail à l'aide de SES
[Python] Envoyer un e-mail
[Python] Envoyer un e-mail
Envoyer des e-mails avec Django
Essayez d'utiliser l'analyseur de flux de Python.
Envoyer des e-mails par Python
Envoyer du courrier japonais avec Python3
Envoyer des e-mails avec Python (Outlook)
Envoyer en utilisant Python avec Gmail
Déboguer la transmission des e-mails avec smtpd.DebuggingServer de Python
Envoyer des messages et des images à l'aide de LineNotify
[Automation] Envoyer des e-mails Outlook avec Python
Générer du code QR à l'aide du "qrcode" de Python
En savoir plus sur la journalisation à l'aide du module de journalisation de Python ①
L'histoire de l'utilisation de la réduction de Python
Remarque: envoyer un e-mail avec Django
Essayez d'utiliser le networkx de Python avec AtCoder
[Python] Envoyez des e-mails avec Outlook
Envoyer des e-mails via gmail avec Python 3.4.3.