Dzień dobry,
Nie umiem programować. Proszę o pomoc w modyfikacji poniższego kodu, aby wysyłał wszystkie pliki z danego katalogu na dysku, które mają rozszerzenie *.pdf oraz *.PDF.
Obecnie wysyła pliki, z danego katalogu na dysku, których nazwa zaczyna się na XX i XY (if plik.startswith(("XX", "XY")):).
Z góry dziękuję za pomoc.
import os
from os.path import join, getsize
import sys
import smtplib
import glob
import fnmatch
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
from email import Charset
import time
import logging
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('/home/test/test.conf')
adres_serwera = config.get('serwer', 'adres_serwera')
logdir = config.get('log', 'logdir')
mail_from = config.get('mail', 'mail_nadawcy')
mail_password = config.get('mail', 'mail_haslo')
mail_temat_test = config.get('mail', 'mail_temat_test')
mail_tekst = config.get('mail', 'mail_tekst')
przedst = config.get('kontr', 'adress_file')
home_dir = config.get('kontr', 'home_dir')
'''print adres_serwera
print logdir
print mail_password
print mail_from
print mail_temat
print mail_tekst
print kontr'''
dzisiaj = time.strftime('%Y%m%d')
wiersz = []
fp = open(mail_tekst, 'rb')
mail_tekst = fp.read().
fp.close()
logfile = dzisiaj+"_list.log"
if not os.path.exists(logdir):
os.mkdir(logdir)
logfile = logdir+logfile
if not os.path.exists(logfile):
print "NIE MA PLIKU LOGOW, tworze plik".
logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', filename=logfile, filemode='w', level=logging.DEBUG)
else:.
logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', filename=logfile, filemode='a', level=logging.DEBUG)
s = smtplib.SMTP_SSL()
s.connect(adres_serwera,465)
s.login(mail_from, mail_password)
def sendMail(to, subject, text, files=[],server=adres_serwera):
assert type(to)==list
assert type(files)==list
msg = MIMEMultipart()
msg['From'] = mail_from
msg['To'] = COMMASPACE.join(to)
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach( MIMEText(text, 'plain', 'UTF-8'))
for file in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"'
% os.path.basename(file))
msg.attach(part)
s.sendmail(mail_from, to, msg.as_string() )
file = open(przedst, "r")
for nr,line in enumerate(file):
line = line.strip()
string = line
if line:
wiersz.append(line)
folder, mail = wiersz[nr].split(",")
print mail
for path, dirs, files in os.walk(home_dir+folder):
print path, files
pliki = []
pliki.append(path)
lista_plikow=[]
for plik in files:
if plik.startswith(("XX", "XY")):
plik = pliki[0]+os.sep+plik
lista_plikow.append(plik)
print lista_plikow
if len(lista_plikow) == 0:
temat = 0
elif len(lista_plikow) == 1:.
try:
sendMail([mail], mail_temat_test, mail_tekst ,lista_plikow)
except smtplib.SMTPConnectError, komunikat:
logging.warning(komunikat)
except smtplib.SMTPAuthenticationError, komunikat:
logging.warning(komunikat)
except smtplib.SMTPRecipientsRefused, komunikat:
logging.warning(komunikat)
except smtplib.SMTPResponseException, komunikat:
logging.warning(komunikat)
else:
for plik in lista_plikow:
to_log = "wyslano wiadomosc do: "+mail+" z plikiem "+plik
print to_log
else:.
try:
sendMail([mail], mail_temat_test, mail_tekst ,lista_plikow)
except smtplib.SMTPConnectError, komunikat:
logging.warning(komunikat)
except smtplib.SMTPAuthenticationError, komunikat:
logging.warning(komunikat)
except smtplib.SMTPRecipientsRefused, komunikat:
logging.warning(komunikat)
except smtplib.SMTPResponseException, komunikat:
logging.warning(komunikat)
else:
for plik in lista_plikow:
to_log = "wyslano wiadomosc do: "+mail+" z plikiem "+plik
print to_log
s.close()